
我正在尝试创建一个带有布局“是”或“否”的警告对话框.我想通过单击“否”按钮但是对话框VIEw.dismiss()来关闭对话框;有错误.
这是我的代码.
private voID showCancelOrderDialog() {AlertDialog.Builder builder = new AlertDialog.Builder(context); LayoutInflater inflater = this.getLayoutInflater(); VIEw dialogVIEw = inflater.inflate(R.layout.dialog_details_cancel_order, null); builder.setVIEw(dialogVIEw); ForegroundcolorSpan foregroundcolorSpan = new ForegroundcolorSpan(color.WHITE); SpannableStringBuilder ssBuilder = new SpannableStringBuilder(db_Title); ssBuilder.setSpan(foregroundcolorSpan,0,db_Title.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); builder.setTitle(ssBuilder); yes = dialogVIEw.findVIEwByID(R.ID.btn_yes); yes.setonClickListener(new VIEw.OnClickListener(){ @OverrIDe public voID onClick(VIEw v) { //////////////////////////// } }); no = dialogVIEw.findVIEwByID(R.ID.btn_no); no.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { dialogVIEw.dismiss(); } }); AlertDialog alertDialog = builder.create(); alertDialog.show();}解决方法:
从这里更改dialogVIEw的定义:
VIEw dialogVIEw = inflater.inflate(R.layout.dialog_details_cancel_order, null);……对此:
final VIEw dialogVIEw = inflater.inflate(R.layout.dialog_details_cancel_order, null);可以通过2种方法看到dialogVIEw的原因:托管整个代码段的方法,以及匿名VIEw.OnClickListener类中的onClick.
如果两个方法看到相同的局部变量,Java希望您使其成为最终的.有效排除未来该领域发生变化的可能性.
与缺少引用参数一起,此规则确保仅在其所属的方法中分配局部变量.因此代码更具可读性.
总结以上是内存溢出为你收集整理的java – 从内部类中访问变量(dialogView),需要声明final全部内容,希望文章能够帮你解决java – 从内部类中访问变量(dialogView),需要声明final所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)