Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

onClickの中での変数

1 Log.d("CNTarray",""+CNTarray.size());

 new AlertDialog.Builder(MainActivity.this)
         .setTitle("Save TItle")
         .setView(view)
         .setMessage("保存するタイトルを入力してください")
         .setPositiveButton( "OK", 
          new DialogInterface.OnClickListener() {          
             @Override
             public void onClick(DialogInterface dialog, int which) {
2
            Log.d("CNTarray",""+CNTarray.size());
             }
         })
         .setOnCancelListener(new DialogInterface.OnCancelListener() {
             public void onCancel(DialogInterface dialog) {
                 Toast toast=Toast.makeText(MainActivity.this,"キャンセル",Toast.LENGTH_SHORT);
                 toast.show();
            }  
         })
         .show();

1のlogではちゃんと配列のサイズが出るのですが、2のlogでは0になってしまいます。
なぜこうなってしまうのでしょうか。

2のところで、CNTArrayの配列を扱うにはどうすればよいのでしょうか?

2

回答

6565

閲覧

2件の回答

評価

0

細切れで分からんけど、同名の別の変数なのか、どこかで
クリアしてるか、実行される順番が違うか、だな。

評価

0

とりあえず、変数をstaticにすれば、
参照できる様になるはず。
使用するときは、もちろん、classname.CNTArrayと指定する。

リスナ(無名クラス)の変数の
スコープについて、調べてみては。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。