如何在文本视图中逐字显示句子



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

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]);
                }
            }
        });
好的,

首先我花了一段时间才理解你的问题,我仍然不确定,据我所知,你想在按钮单击时显示下一个添加到文本视图中的 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++;
                   }                    
                }
            });

文本视图将仅显示最后一个单词,因为它位于 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);
}

另一种方法全局声明字符串变量

String s="";

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

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

最新更新