1

アクティビティには多くのボタンがあり、それらをクリックすると、URL が ArrayList コレクションにストックされている別の Web ページを開く必要があります。ループを使用したいのですが、「別のメソッドで定義された内部クラス内の非最終変数を参照できません」というメッセージが表示されます。

public class MainActivity extends Activity {

  public List<String> links = new ArrayList<String>();
  public static final int NRBUTTONS = 7;
  ..........................        
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    ..........
    ..........  
    int id = R.id.button1 - 1;
    for (int index=0; index<NRBUTTONS; index++) {

   Button b = (Button) findViewById(++id);
   String text = titles.get(index);
   b.setText(text);

   b.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View arg0) {
    Intent browserIntent = new Intent (Intent.ACTION_VIEW,   
                    Uri.parse(links.get(index)));
    startActivity(browserIntent);
     }
  });
   }
   ...........
}

また、ご協力いただける場合は、

Button b = (Button) findViewById(R.id.button1);
Button b = (Button) findViewById(R.id.button2);
Button b = (Button) findViewById(R.id.button3);
Button b = (Button) findViewById(R.id.button4);

これをループでどのように書くことができますか?

4

1 に答える 1