پروژه هنگ من و یک ایراد کوچک (حل نشده)
سلام استاد در پروژه هنگ من برای خواندن متن Button و جلوگیری از تعریف چندین Button در برنامه، در تنظیمات onClick رو ست کردند و تابع letterOnClickListener رو در برنامه استفاده کردند:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dialogRequest = new Dialog(Activity.this);
dialogRequest.setContentView(R.layout.dialog);
dialogRequest.show();
}
public void letterOnClickListener(final View view) { <-- این تابع
Button btn = (Button) view;
String letter = btn.getText().toString();
Log.i("LOG", "letter : " + letter);
}
}
تا اینجای کار راحته اما من داخل برنامم دیالوگ دارم و همین Buttonها رو داخل دیالوگ قرار دادم و زمانی که از همین کد استفاده میکنم ارور زیر رو بهم میده، مشکلش کجاست؟
E/AndroidRuntime(3157): FATAL EXCEPTION: main E/AndroidRuntime(3157): java.lang.IllegalStateException: Could not find a method letterOnClickListener(View) in the
activity class android.view.ContextThemeWrapper for onClick handler on view class android.widget.Button with id 'Button12' E/AndroidRuntime(3157): at android.view.View$1.onClick(View.java:3586) E/AndroidRuntime(3157): at android.view.View.performClick(View.java:4204) E/AndroidRuntime(3157): at android.view.View$PerformClick.run(View.java:17355) E/AndroidRuntime(3157): at android.os.Handler.handleCallback(Handler.java:725) E/AndroidRuntime(3157): at android.os.Handler.dispatchMessage(Handler.java:92) E/AndroidRuntime(3157): at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime(3157): at android.app.ActivityThread.main(ActivityThread.java:5041)
اگه کدهای دیالگتونم میذاشتین بهتر میشد بررسی کرد ولی به احتمال زیاد خطاتون توی تعریف باتن هاست ...
حواستون باشه توی دیالوگ باید به فرمت زیر تعریف کنید....
//شی که از دیالوگ ساخنه شده
final Dialog myDialog = new Dialog(MyActivity.this);
// ساختن باتن یا هر چیز شبیه به اون در دیالوگ
Button btnDialog = (Button) myDialog.findViewById(R.id.btn_sample);
بله میدونم به خاصیت onclick باتن ها مقدار leterOnclickListener میدید و بعد همه رو یه جا تعریف میکنید ، من کاملا متوجه منظورتون شدم اما بنده میگم این روش در دیالوگ کمی متفاوته چون تعریف در دیالوگ هم متفاوته
چون معمولا خطازیاد داره و قواعد خاص خودشو
و همه چی باید تو همون دیالوگ ساخته بشه نه بیرونش
احتمال داره اگه یه جوری بتونین هنگامی که باتن را تعریف میکنین از جنس دیالوگ تعریف کنین جواب بگیرین :
، البته بنده امتحان نکردم اما میدونم تو دیالوگ مجبوریم همه چی رو از شی تعریف کنیم شما امتحان کن اگه شد بگو : خودتم تغییرات لازمو بده ....
مثلا به شکل زیر
Button btn =(Button) dialogRequest.view;
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .