java– 从内部类中访问变量(dialogView),需要声明final

java– 从内部类中访问变量(dialogView),需要声明final,第1张

概述我正在尝试创建一个带有布局“是”或“否”的警告对话框.我想通过单击“否”按钮但是对话框View.dismiss()来关闭对话框;有错误.这是我的代码.privatevoidshowCancelOrderDialog(){AlertDialog.Builderbuilder=newAlertDialog.Builder(context);LayoutInflateri

我正在尝试创建一个带有布局“是”或“否”的警告对话框.我想通过单击“否”按钮但是对话框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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1119634.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存