2012-03-18 80 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异常。