آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چطور می توان متدی از کلاسی دیگر را اجرا کرد که حاوی Dialog یک Layout باشد

hamid.fatemi.2002  12 سال پیش  12 سال پیش
0 0

با سلام،

هدف : ساخت یک Layout بعنوان دیالوگ  که از طریق متدی واقع در کلاس مربوط به آن صدا زده شود.

توضیح کامل : 

یک لایه ساختم که میخوام بصورت دیالوگ هرجا که خواستم فقط با صدا زدن یک متد ، با گرفتن پارامترای ورودی اجرا شه.

مثلا یک لایه دارم به نام dialog.xml رفتم داخل کلاس ActivityA یک متد ایجاد کردم به نام someMethod  که قراره دیالوگی با اون لایه بسازه و show کنه. حالا میخوام از داخل کلاس B که مربوط به لایه main.xml هست اون متد رو صدا بزنم تا دیالوگ مورد نظرم اجرا شه. ولی متاسفانه کرش میکنه

لطفا راهنمایی کنید

نکته : هدف خواسته شده در یک مثال آمده که ضمیمه کردم، ولی نمیتونم منظور Logcat رو بفهمم.

فایل  : http://uplod.ir/5uo1m70wfyw1/TestDialog1.zip.htm

 برای این سوال 3 پاسخ وجود دارد.
پاسخ به سوال 
حامد  12 سال پیش
+3 0

میتونی با این کد در مانیفست layout را به دیالاگ تبدیل کنی:

 <activity:name="TextEntryActivity"
android:label="My Activity"
android:theme="@android:style/Theme.Dialog"/>

برای فراخونی میتونی از fragment استفاده کنی یا اینکه در یک اکتیویتی قرار بدی و با intent صداش کنی.

پاسخ به سوال 
sadeghbarout  12 سال پیش
+1 0

راه حامد را جالبی بود که حتما باید تستش کنم.

اما مشکل برنامه ت اینه که 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 مشخص نکرده بودی که البته دیگه نیازی بهش نداری

پاسخ به سوال 
hamid.fatemi.2002  12 سال پیش
0 0

ممنون از راهنماییت، اما مطلبی که شما میگی در آموزشای تصویری نیست و من نمی دونم دقیقا بقیه بخشا رو  چیکار کنم،

ضمناً هدف من اینه که Layoutی که داره بعنوان دیالوگ لود میشه از من بعنوان ورودی یک TextView و یک ViewGroup بخواد تا  بشه یک دایالوگ داینامیک بسازم باهاش.

 

مثلا من یک فایل xml ساختم برای انتخاب تاریخ شمسی، توی صفحه اصلیم چند جا تاریخ داخل TextView دارم. جداگانه واسه هر کدومشون اینو تعریف کردم که وقتی روشون کلیک میشه این xml میاد بالا وبا متن تاریخی که انتخاب کردم..... و  یه کارایی میکنه. مشکل اینجاس وقتی میخوام مرتبش کنم و داخل یک متد ، توی جای خودش بذارم که هر وقت بخوام راحت صداش کنم، ارور میده.

یدونه مثال شبیه پروژه خودم آپلود کردم، اگه بتونید بگید مشکل اون کجاس سوالم برطرف میشه. ممنون از لطفتون

 


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