如何在TextView中逐字显示句子?

时间:2018-03-07 07:23:39

标签: android android-studio textview

我尝试了这段代码,但它只显示了最后一个字:

signButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String speech = "This code is sample";
                String[] result = speech.split("\\s");
                for (int x=0; x<result.length; x++) {
                    textView.setText(result[x]);
                }
            }
        });

3 个答案:

答案 0 :(得分:1)

好的,首先我花了很多时间来理解你仍然不确定的问题,根据我的理解,你想要在按钮点击的文本视图中添加下一个WORD。 。

要实现此目的,您可以使用以下代码。

//String Array preparation
    String speech = "This code is sample";
    String[] result = speech.split("\\s");
    int count = 0;

    signButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                   //check if array has more values to add or whatever you want to check
                   if(count<result.length){
                      if(count==0){
                        textView.append(result[count]; 
                      } else {
                        textView.append(" " + result[count];
                      }
                      count++;
                   }                    
                }
            });

答案 1 :(得分:0)

另一种方法 全局声明一个字符串var

String s="";

现在在你的代码中使用这个 在for循环中

s=s+""+result[x];
textView.append(s):

答案 2 :(得分:0)

textview将仅显示最后一个单词,因为它位于for循环中。设置每个单词后,下一次迭代将发生,因此,用户只能查看最后一个单词。您可以在特定时间后更改每个单词。请尝试以下代码。在这里,我给了每个单词5秒钟。

int x; //declare x as global variable

String speech = "This code is sample";
String[] result = speech.split("\\s");
textView.setText(result[0]);

for (x=1; x<result.length; x++) {
new Handler().postDelayed(new Runnable(){
        @Override
        public void run() {
           textView.setText(result[x]);
        }
    }, 5000);
}