TextView 将多个字符串设置成一个setText(int resid)

TextView set multiple string into a setText(int resid)

早上好,

如何将多个字符串资源放入 setText 中以按顺序显示它们?

我有一个带有 TextView (id: TxtDisp) 和一个 Button (id: NextSentence) 的布局,当我点击它时会更改文本。

NextSentence.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            TxtDisp.setText(R.string.sentence_2);
        }
    });

在什么地方或如何放置四到六个字符串资源,以便在单击按钮时按顺序显示?

提前致谢!

当你将这些字符串保存在数组或其他东西中并有一个计数器来保存现在显示的字符串时,你可以很容易地做到这一点,就像这样 在 onCreate() 方法中将你的句子放在 ArrayList

ArrayList<Integer> strings = new ArrayList();
strings.add(R.string.sentence1);
strings.add(R.string.sentence2);
strings.add(R.string.sentence3);

然后在按钮上单击您可以使用所选的计数器和轨道

NextSentence.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        TxtDisp.setText(strings.get(count++));
    }
});

希望对您有所帮助

您可以将字符串资源放在一个数组中,然后从中获取字符串。所以添加一个 class 成员来跟踪下一个句子

private int nextSentenceId = 0;

然后在 onCreate 中使用这样的代码

final int[] sentences = new int[]{R.string.sentence_1, R.string.sentence_2, R.string.sentence_3};

NextSentence.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if( nextSentenceId < sentences.length ) {
            TxtDisp.setText(sentences[nextSentenceId]);             
            ++nextSentenceId;
        }
    }
});

确保在最后一句时捕获,否则会出现数组越界错误。