我对android编程很新,所以请原谅我的noobie-ness.我正在尝试创建一个非常简单的活动,它将在布局中间放置一个TextView,并让它每隔几秒切换到一个不同的文本.例如,TextView将显示"text1",暂停几秒钟,然后说"text2,然后再次暂停.最后,我想添加更多文本并让它们一个接一个地循环.我知道这似乎是一个超级简单的事情,但我现在主要是试图了解线程和处理程序.无论如何,我已经读过我们应该如何保持UI线程中冗长的东西来防止错误,所以我想我会使用一个处理程序简单地在屏幕上切换2个文本.不幸的是,我无法让它工作.这里是一些代码:
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();
}
}
Run Code Online (Sandbox Code Playgroud)
从我在logcat中看到的,处理程序似乎一个接一个地运行postDelayed(在我的代码的情况下,它不等待7秒,postDelay做另一个postDelayed).另外,我想在"mytexts.setText(myarray [1])中创建1;" 与for循环中的"count"相同,因此它可以与数组中的某个字符串相同,但这会给我一个错误.我已经被困在这几个小时了,我在网上发现的其他例子似乎对像我这样的人来说太复杂了,他们主要想要在我能解决其他问题之前先掌握基础知识.任何这方面的任何帮助都将非常感激.谢谢.