我对android编程很陌生,所以请原谅我的菜鸟。我正在尝试创建一个非常简单的活动,它将在布局中间有一个 TextView,并且每隔几秒钟让它切换到不同的文本。例如,TextView 会说“text1”,暂停几秒钟,然后说“text2”,然后再次暂停。最终,我想添加更多文本并让它们一个接一个地循环。我知道这看起来像一个超级简单的事情,但我现在主要是想了解线程和处理程序。无论如何,我已经阅读了我们应该如何在 UI 线程上保留冗长的内容以防止错误,所以我想我会使用处理程序简单地在屏幕上的两个文本之间切换。不幸的是,我无法让它工作。这是一些代码:
public class MainActivity extends Activity {
String[] myarray = {"text1" , "text2"};
int arraylength = myarray.length;
int count;
Handler handler = new Handler();
TextView mytexts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mytexts = (TextView)findViewById(R.id.my_texts);
mytexts.setText(myarray[0]);
Thread t = new Thread( new Runnable(){
public void run() {
for (int count = 0; count < arraylength; count++){
handler.postDelayed(new Runnable(){
public void run() {
mytexts.setText(myarray[1]);
}
}, 7000);
}
}
});
t.start();
}
}
从我在 logcat 中可以看到,处理程序似乎一个接一个地运行 postDelayed(在我的代码的情况下,它不会等待 7 秒后使用 postDelay 来执行另一个 postDelayed)。另外,我想在“mytexts.setText(myarray[1]);”中设置 1 与 for 循环中的“count”相同,因此它可以与数组中的字符串之一相同,但这会给我一个错误。我已经坚持了好几个小时,而且我在网上找到的其他示例对于像我这样主要想在处理其他事情之前先了解基础知识的人来说似乎太复杂了。任何有关这方面的任何帮助都将不胜感激。谢谢你。