小编典典

从onclicklistener访问变量

java

因此,我有一个用于列表视图的onItemLongClickListener,该列表视图传递了一个参数“
int位置”。在内部,我有一个带有两个按钮的alertDialogBu​​ilder。我还有另一个按钮的onclickListener。我需要从第二个侦听器内部访问该位置。反正有没有做到这一点而不使其成为全球性的呢?

public boolean onItemLongClick(AdapterView parent, View itemView, int position, long id){

    AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(BookFace.this);
    alertDialogBuilder.setTitle("Choose an option.");
    alertDialogBuilder
    .setMessage("What would you like to do?")
    .setCancelable(true)
    .setPositiveButton("Edit", new DialogInterface.OnClickListener(){

        @Override
        public void onClick(DialogInterface dialog, int which) {
            Intent intent = new Intent();
            intent.putExtra("position", position); //Can't access this variable
            intent.setClass(SomeClass.this, EditActivity.class);
            startActivity(intent);
    }

谢谢你的帮助。


阅读 224

收藏
2020-11-26

共1个答案

小编典典

在Java中,只有先将内部变量声明为,才能从内部类声明访问外部变量final。因此,您可以添加:

final int selectedPosition = position;

到方法的顶部,并在您的额外值中使用该值,即

intent.putExtra("position", selectedPosition);
2020-11-26