2016-07-22 4 views
0

ボタンのリストから実行されていないと私はこのようなリストでそれらをロードしています:onClickイベントハンドラは、私はボタンのリストを持っている

positionButtons.add((Button) findViewById(R.id.positionBtn0)); 
positionButtons.add((Button) findViewById(R.id.positionBtn1)); 
positionButtons.add((Button) findViewById(R.id.positionBtn2)); 

私はこのようなイベントハンドラを追加してい:

Button.OnClickListener currentPositionListener = new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      Log.d(this.getClass().getSimpleName(), "Current position selected"); 
      setSelectedPositionButton((Button) view); 
     } 
    }; 


for (Button positionButton: positionButtons) { 
     positionButton.setOnClickListener(currentPositionListener); 
} 

イベントハンドラ実行されません(エラーメッセージなしが)、私が実行されるイベントハンドラの各ボタンに個別の変数を持っている必要があり飽きない:

positionButton0.setOnClickListener(currentPositionListener); 

なぜこのようなことが起こっていますか?回避策がありますので、リストにボタンを追加して別の変数を宣言するステップに進むのではなく、そこから作業するだけです。

UPDATE:

実際のご質問にはお答えして、トラブルシューティングとして扱いしないでください。あなたの意見と経験でこれがうまくいけば、あなたは実際の作業例でコメントや返信を加えることができます。私は自分のコードをデバッグしようとしていない、より多くの洞察を得ることを試みている。

+0

View.OnClickListener currentPositionListener =新しいView.OnClickListener( '試してみてください){.....};'の代わりに 'Button.OnclickListener' –

+0

のあなたが共有することができます完全なソースコード。 Toastを置くか、 'onClick'メソッドの中にデバッグを使って、このメソッドが呼び出されていないことを確認してください(logcatが表示されないので) –

+0

@AkshayBhat nope。私はすでにこれを試しました。 – atas76

答えて

0

このようにそれを行うようにしてください:

for (Button positionButton: positionButtons) { 
    positionButton.setOnClickListener(new OnClickListener() { 
     @Override 
     public void onClick() { 
      // write your code... 
     } 
    }); 
} 
関連する問題