چطور می توان متدی از کلاسی دیگر را اجرا کرد که حاوی Dialog یک Layout باشد
با سلام،
هدف : ساخت یک Layout بعنوان دیالوگ که از طریق متدی واقع در کلاس مربوط به آن صدا زده شود.
توضیح کامل :
یک لایه ساختم که میخوام بصورت دیالوگ هرجا که خواستم فقط با صدا زدن یک متد ، با گرفتن پارامترای ورودی اجرا شه.
مثلا یک لایه دارم به نام dialog.xml رفتم داخل کلاس ActivityA یک متد ایجاد کردم به نام someMethod که قراره دیالوگی با اون لایه بسازه و show کنه. حالا میخوام از داخل کلاس B که مربوط به لایه main.xml هست اون متد رو صدا بزنم تا دیالوگ مورد نظرم اجرا شه. ولی متاسفانه کرش میکنه
لطفا راهنمایی کنید
نکته : هدف خواسته شده در یک مثال آمده که ضمیمه کردم، ولی نمیتونم منظور Logcat رو بفهمم.
میتونی با این کد در مانیفست layout را به دیالاگ تبدیل کنی:
<activity:name="TextEntryActivity"
android:label="My Activity"
android:theme="@android:style/Theme.Dialog"/>
برای فراخونی میتونی از fragment استفاده کنی یا اینکه در یک اکتیویتی قرار بدی و با intent صداش کنی.
راه حامد را جالبی بود که حتما باید تستش کنم.
اما مشکل برنامه ت اینه که Dialog یه context از جنس activity میخواد نه از جنس application
پس برنامه ات رو باید به این شکل تغییر بدی :
توی TestDialog1Activity :
DialogCaller.dialogTestMethod(txtTextToChange, TestDialog1Activity.this);
و توی DialogCaller :
public static void dialogTestMethod(final TextView txtInput, Context context) {
Dialog dialog = new Dialog(context);
...
کد ها رو به این صورت اصلاح کن.
راستی G رو هم تو manifest مشخص نکرده بودی که البته دیگه نیازی بهش نداری
ممنون از راهنماییت، اما مطلبی که شما میگی در آموزشای تصویری نیست و من نمی دونم دقیقا بقیه بخشا رو چیکار کنم،
ضمناً هدف من اینه که Layoutی که داره بعنوان دیالوگ لود میشه از من بعنوان ورودی یک TextView و یک ViewGroup بخواد تا بشه یک دایالوگ داینامیک بسازم باهاش.
مثلا من یک فایل xml ساختم برای انتخاب تاریخ شمسی، توی صفحه اصلیم چند جا تاریخ داخل TextView دارم. جداگانه واسه هر کدومشون اینو تعریف کردم که وقتی روشون کلیک میشه این xml میاد بالا وبا متن تاریخی که انتخاب کردم..... و یه کارایی میکنه. مشکل اینجاس وقتی میخوام مرتبش کنم و داخل یک متد ، توی جای خودش بذارم که هر وقت بخوام راحت صداش کنم، ارور میده.
یدونه مثال شبیه پروژه خودم آپلود کردم، اگه بتونید بگید مشکل اون کجاس سوالم برطرف میشه. ممنون از لطفتون


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .