2016-05-22 6 views
0

以下のようにループ内のボタンにアクセスしています。ループ内でボタンIDにアクセスするのは良い方法ですか?

@Override 
public void onClick(View v) { 
    int clickedButtonId=v.getId(); 
    for(int buttonIndex=1;buttonIndex<=MAX_BUTTON;buttonIndex++) { 
     int buttonId = getResources().getIdentifier("button" + buttonIndex, "id", getPackageName()); 
     if(clickedButtonId==buttonId){ 
      showToast(buttonIndex); 
      openLink(LIKS[buttonIndex-1]); 
      break; 
     } 
    } 
} 

いいですか?

+0

を参照してください、私は問題がないと思いますこのコードを使用する。 – pooyan

+0

Androidのようなタグ名を質問のタイトルに追加しないでください(下部のタグが対象となります)。ループではgetIdentifier()を使用しないでください。パフォーマンスに問題があります(ただし、反復の回数と実行頻度によって異なります)。 – Luksprog

答えて

1

ループ内のUIスレッド内のボタンのIDにのみアクセスすることは大したことではありませんが、ボタンの処理を重視すると、UIアクティビティ画面の速度が大幅に低下する可能性があります。私は詳細については

..処理のような種類を実行するためのAsyncTaskを使用することをお勧めし、あなたのレイアウトが重くないと、実行時の速度が重要でない場合https://developer.android.com/reference/android/os/AsyncTask.html

関連する問題