2013-03-21 103 views
0

所以我得到了我循环通过这个字符串数组。一个菜鸟问题,但是,我该如何反转和循环回来?基本上我想要的是“前进”和“后退”功能,因此不必循环整个阵列以回到“a”。谢谢!循环回通过字符串数组

public class FirstActivity extends Activity { 

    private static int counter = 0; 
    private TextView exampleTextView; 
    string exampleText; 


    private static final String[] EXAMPLESTRINGS = { 
    "a", 
    "b", 
    "c" 
    }; 

public void generateText(View v) { 

    String exampleText = EXAMPLESTRINGS[counter++]; 
    if(counter == EXAMPLESTRINGS.length) { 
     counter = 0; 
    } 
    exampleTextView.setText(exampleText); 
} 
+0

你尝试过'计数器 - '吗?或者只是'EXAMPLESTRINGS [0]'?有点难以确切知道你的问题是什么,或者你期望如何实现这一点。这听起来像你可能认为数组有点像磁带,只能连续访问 - 事实并非如此。你可以从数组中获得任何值,而不仅仅是“下一个”。 – iamnotmaynard 2013-03-21 18:03:15

+0

http://stackoverflow.com/questions/2297110/java-linkedlist-previous-next可能有助于 – 2013-03-21 18:03:42

回答

0

我猜generateText()方法是从UI调用某种方法吗? 试着这么做:

public void generateTextForward(View v) { 
    if(counter == EXAMPLESTRINGS.length -1) { 
     counter = 0; 
    } 
    String exampleText = EXAMPLESTRINGS[counter++]; 
    exampleTextView.setText(exampleText); 
} 

public void generateTextBackward(View v) { 
    if(counter == 0) { 
     counter = EXAMPLESTRINGS.length -1; 
    } 

    String exampleText = EXAMPLESTRINGS[counter--]; 
    exampleTextView.setText(exampleText); 
} 

现在你有两个方法,一个是前锋,一个用于倒退。真的不知道该应用程序为这个:)

但正如上面提出了一些意见,看看链表此相反。

+0

没错,这个想法是有一个向后和向前按钮在阵列中提供了一个/下一个字符串。你的代码似乎在正确的轨道上,但是这种行为有点奇怪:当执行generateTextBackward时,它首先前进,并且只有在再次执行该函数(以及随后的执行)时才会反向执行。因此,从“a”开始,它会变成“a” - “b” - “a” - “c”。任何想法为什么? – user1854291 2013-03-21 22:43:45