2012-03-18 73 views
0

我想插入一個for語句,當用戶單擊Next按鈕時,該語句在TextView上增加並顯示Strings。但是當我按下按鈕時,它顯示「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

那麼...什麼是「問題」? (我猜你會設置* same *'info'元素的文本'items.length'次,這可能不是我們所期望的。) – 2012-03-18 19:49:01

回答

1

for迴路循環,直到最後一個值單擊Button。如果你只是想顯示下一個字符串:

// 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

由於某些奇怪的原因,當我按下按鈕時,它會打印出「測試」,但它當我再次按下時,不會打印出「Test1」。看起來好像沒有正確遞增 – Hashey100 2012-03-18 19:58:21

+0

@ Hashey100不要把'int value = 0;'放在方法'onClick'中,使它成爲你類中的一個字段。 – Luksprog 2012-03-18 20:01:11

+0

我只是試了一下,現在它打印「Test4」,只是編譯和錯誤,如果我再次按下它 - wierd =/ – Hashey100 2012-03-18 20:03:07

0

使用

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

避免IndexOutOfBoundsException異常。