在文本视图中显示数组/字符串的第一个元素,并从中启动数组



我有一个代码,在下一个和后退按钮的帮助下,我正在向前和向后移动文本。现在我面临的问题是我需要首先显示字符串中的第一个元素,然后将该字符串从该元素向前和向后移动。这是我的代码

    String[] answers = { "red", "green", "blue" };
    private int _position = answers.length - 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.learn_main);
        Button btnNext = (Button) findViewById(R.id.button2);
        Button btnBack = (Button) findViewById(R.id.button1);
        final TextView tv = (TextView) findViewById(R.id.textView1);
        tv.setText(answers[_position]);

        // INITIALIZING OVER
        btnNext.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {

                if (_position < answers.length - 1) {
                    _position++;
                } else {
                    _position = 0;
                }
                tv.setText(answers[_position]);
            }
        });
        btnBack.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                if (_position > 0) {
                    _position--;
                } else {
                    _position = answers.length - 1;
                }
                tv.setText(answers[_position]);
            }
        });
    }
}

我尝试在 xml 中分配我想从中开始的值,但没有帮助,因为我的第一个元素重复了两次。

以下内容也无济于事

tv.setText(answers[0]);

你的逻辑是对的,但几乎没有错。所以试试这个修改过的。希望它能奏效。

String[] answers = { "red", "green", "blue" };
private int _position = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.learn_main);
    Button btnNext = (Button) findViewById(R.id.button2);
    Button btnBack = (Button) findViewById(R.id.button1);
    final TextView tv = (TextView) findViewById(R.id.textView1);
    tv.setText(answers[_position]);

    // INITIALIZING OVER
    btnNext.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {

            if (_position < answers.length - 1) {
                _position++;
            } else {
                _position = 0;
            }
            tv.setText(answers[_position]);
        }
    });
    btnBack.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {
            if (_position > 0) {
                _position--;
            } else {
                _position = answers.length - 1;
            }
            tv.setText(answers[_position]);
        }
    });
}

}

最新更新