【问题标题】:Is there are way to change value inside of AlertDialog.Builder?(Android)有没有办法改变 AlertDialog.Builder 内部的值?(Android)
【发布时间】:2017-12-08 21:15:04
【问题描述】:

我是安卓新手。 我可以更改 AlertDialog.Builder 中的值吗?

int changeThisDataToOne = 0;

    new AlertDialog.Builder(view.getContext())
            .setIcon(android.R.drawable.ic_dialog_alert)
            .setTitle("Are you sure?")
            .setMessage("Do you want to delete this note?")
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialogInterface, int i) {
                            changeThisDataToOne = 1;
                           //error : Variable 'changeThisDataToOne' is accessed 
                           //from within inner class, needs to be declared final
                        }
                    }
            )
            .setNegativeButton("No", null)
            .show();
}

【问题讨论】:

  • 你能把变量设为类变量吗?

标签: android android-alertdialog inner-classes final


【解决方案1】:

你不能将局部变量(changeThisDataToOne)访问到内部类中,你应该把它设为final或者初始化为全局变量。

【讨论】:

    【解决方案2】:

    changeThisDataToOne 更改为final int[]

    final int[] changeThisDataToOne = {0};
    

    那么它的值可以改变为

    changeThisDataToOne[0] = 1;
    

    或将changeThisDataToOne 设为字段变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-09-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-27
      • 2020-09-27
      相关资源
      最近更新 更多