2

所以我有一个用于获取传入参数“int position”的列表视图的onItemLongClickListener。在里面,我有一个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);
    }

谢谢你的帮助。

4

2 回答 2

1

如果您将位置更改为最终位置,那么它应该允许您从 onClick 方法中访问它。

于 2012-10-30T20:33:33.347 回答
0

在 Java 中,只有首先将外部变量声明为final. 所以你可以添加:

final int selectedPosition = position;

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

intent.putExtra("position", selectedPosition);
于 2012-10-30T20:32:20.407 回答