2012-03-18 6 views
0

ユーザーが[次へ]ボタンをクリックしたときに文字列をインクリメントして表示するfor文を挿入します。しかし、私がボタンを押すと "3"と表示されます。誰かが間違っているところを指摘できますか?ありがとうfor()を文字列で構成したい

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()){ 
    case R.id.one: 
     break; 
     case R.id.Next: 
      final CharSequence[] items = {"Test", "Test1", "Test3", "Test4"}; 
      for(i=0; i<items.length; i++){ 
      String s = (String)items[i]; 
      info.setText(s); 

    } 

    break; 

} 

} 
+1

だから "問題"は何ですか? (私は同じ* 'info'要素のテキスト' items.length'時間を設定していると思います。これは望ましくない可能性があります) –

答えて

1

あなたforループは最後の値まであなたがButtonをクリックするたびにループします。 IndexOutOfBoundsExceptionを避けるために

// field 
int value = 0; 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    switch(v.getId()){ 
    case R.id.one: 
     break; 
     case R.id.Next: 
      final CharSequence[] items = {"Test", "Test1", "Test3", "Test4"};    
      if (value < items.length) { 
       String s = (String)items[value]; 
       info.setText(s); 
       value++; 
      } 
    } 

    break; 

} 

} 
+0

私はボタンを押すと何か変わった理由のために "Test"もう一度押すと "Test1"が表示されません。 – Hashey100

+0

@ Hashey100メソッド 'onClick'に' int value = 0; 'を入れないで、クラスのフィールドにしてください。 – Luksprog

+0

私は今試してみましたが、今は "Test4"を印刷して、もう一度押すとコンパイルとエラーが発生します - wierd =/ – Hashey100

0

使用

String s = (String)items[value % items.length]; 

:あなただけの次の文字列を表示したい場合。

関連する問題