java - 如何在数组末尾停止递增和递减?

标签 java android arrays

我是编程初学者。我想制作一个具有 3 个 View 的 Android 应用程序。

  1. TextView (显示文本),以及
  2. 按钮(前进和后退)。

我制作了一个要显示的单词数组一、二、三、四、五。 我将 one 放在 xml 上。

当用户单击FORWARD时,它会显示two,当用户再次单击FORWARD时,它会显示,当用户点击BACK,它会显示two。我可以做到这一点。

问题在于当它达到5并且用户点击FORWARD时以及当它达到one并且用户点击BACK 它崩溃了。

我希望按钮不执行任何操作,甚至不返回one。我希望用户知道这是列表的末尾。 BACK 按钮也有同样的问题。我希望它保留在 one 上。这是我的代码。请帮忙。

public class aba extends AppCompatActivity {

    int i = 0;
    String[] myList = {
        "one",
        "two",
        "three",
        "four",
        "five"
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_aba);

        }
        //Incrementing the value by l on forwardButton click
    public void forwardButton(View view) {
            TextView textDisplay = (TextView) findViewById(R.id.textDisplay);
            i = i + 1;
            textDisplay.setText(myList[i]);
            if (i == myList.length) {
                i = i + 0;
            }
        }
        //decrementing the value by l on backButton click
    public void backButton(View view) {
        TextView textDisplay = (TextView) findViewById(R.id.textDisplay);
        i = i - 1;
        textDisplay.setText(myList[i]);
        if (i == 0) {
            i = i - 0;
        }

    }
}

最佳答案

数组的索引从0开始。 由于数组包含 5 个元素,因此 length 的值为 5,但索引为 0、1、2、3、4。

这意味着您不想低于 0 且高于 4。

(此外,没有理由在每次单击按钮时初始化 TextView)

这样的事情应该有效:

int i = 0;
String[] myList={"one", "two", "three", "four", "five"};
TextView textDisplay;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_aba);

    textDisplay = (TextView) findViewById(R.id.textDisplay);
}

public void forwardButton(View view)  {
    if(i < myList.length - 1) {
        i++;
        textDisplay.setText(myList[i]);
    }

}

public void backButton(View view)  {
    if(i > 0) {
        i--;
        textDisplay.setText(myList[i]);
    }
}

关于java - 如何在数组末尾停止递增和递减?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38401942/

相关文章:

android - eclipse + eclim + android支持库

java - 调试在 Oracle JVM 中运行的 Java 代码

java - java中如何在没有打印对话框的情况下进行打印

android - 如何在 android 2.2 的一个 Activity 中运行多个具有不同 VideoViews 的视频?

android - 为具有 2 个 View 的 ListView 中的项目设置 OnClickListener

jquery - 使用 jQuery 的 $.map 跳过一个元素

javascript - 合并数组中的对象

PHP 在数组变量中添加条件(WooCommerce API)

java - 加载异常: Root value already specified on custom control

java - 如何在 Spring Security 中启用选择性 http 模式的内容安全策略