2

そのため、渡されたパラメーター 'int position' を取得するリスト ビューの onItemLongClickListener があります。内部には、2 つのボタンを持つ alertDialogBu​​ilder があります。ボタン用に別の onclickListener があります。2 番目のリスナー内から位置にアクセスする必要があります。グローバルにせずにこれを行う方法はありますか?


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

position を final に変更すると、onClick メソッド内からアクセスできるようになります。

于 2012-10-30T20:33:33.347 に答える
0

Java では、最初に として宣言されている場合にのみ、内部クラス宣言から外部変数にアクセスできますfinal。したがって、次を追加できます。

final int selectedPosition = position;

メソッドの先頭に追加し、その値をエクストラで使用します。つまり、

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