بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل صدا زدن یک OnClickListenr در یک دیالوگ(حل شد)
با سلام
یک Button ساختم و یک ClickListener برای اون تعریف کردم که دیالوگ رو فراخوانی می کنه.
سوال من اینه که هر Clicklistener دیگه ای که درون دیالوگ میسازم برنامه کرش می کنه.
ممنون می شم راهنماییم کنید.
//اینجا متد دیالوگ رو صدا می زنم
btnDialog.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { sampledialog(); } });
//در این متد نمی تونم کلیک لیسنر تعریف کنم، خطای کامپایل هم نمی ده
private void sampledialog() {
final dialog = new Dialog(mainActivity.this); WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); lp.copyFrom(dialog.getWindow().getAttributes()); dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.gidedialog); lp.width = WindowManager.LayoutParams.MATCH_PARENT; lp.height = WindowManager.LayoutParams.MATCH_PARENT; btnShortDesc.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) {
dialog.dismiss();
//به خاطر این لیسنر برنامه کرش می کنه، به طور کل دیالوگ باز نمی شه!!! } }); dialog.show(); dialog.getWindow().setAttributes(lp); }
برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال
hosein2020
11 سال پیش
+3
0
سلام ، شما اون button دوم برای بستن dialog رو کجا تعریف کردید ؟
تابعتون رو به شکل زیر تغییر بدید :
private void sampledialog() {
final Dialog dialog = new Dialog(mainActivity.this);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams();
lp.copyFrom(dialog.getWindow().getAttributes());
dialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.gidedialog);
lp.width = WindowManager.LayoutParams.MATCH_PARENT;
lp.height = WindowManager.LayoutParams.MATCH_PARENT;
//تعریف دکمه دوم
Button btnShortDesc = (Button) dialog.findViewById(R.id.btnShortDesc);
btnShortDesc.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
dialog.dismiss();
//به خاطر این لیسنر برنامه کرش می کنه، به طور کل دیالوگ باز نمی شه!!!
}
});
dialog.show();
dialog.getWindow().setAttributes(lp);
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .