我是Android的新手,刚开始学习一些教程视频。我的要求最初我需要将textview文本显示为“红色”,并在5-10秒后,需要将其更改为“hello red”。
我已尝试过两种方法。在第一种方法中它给我异常而在第二种方法中它在给定延迟后启动应用程序并直接显示“hello red”文本。我可能在这里遗漏了一些基本概念。你能帮帮我吗?
TextView myText;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
myText = (TextView)findViewById(R.id.displayTv);
// ------ first method start ---------
Thread timer = new Thread(){
public void run(){
try{
sleep(6000);
}catch(InterruptedException e){
e.printStackTrace();
}finally{
myText.setText("Hello red");
}
}
};
timer.start();
// ------ first method end ---------
// ------ second method start ---------
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
myText.setText("Hello red");
// ------ second method end ---------
}
}
答案 0 :(得分:4)
尝试使用处理程序,
Handler h=new Handler();
h.postDelayed(new Runnable(){
public void run(){
//change your text here
}
}, time_delay);
答案 1 :(得分:4)
_tv = (TextView) findViewById( R.id.textView1 );
tv2 = (TextView) findViewById( R.id.textView2 );
_tv.setText( "red" );
_t = new Timer();
_t.scheduleAtFixedRate( new TimerTask() {
@Override
public void run() {
_count++;
runOnUiThread(new Runnable() //run on ui thread
{
public void run()
{
tv2.setText(""+_count);
if(_count==5)
{
_tv.setText("hello red" );
_tv.setTextColor(Color.RED);
}
}
});
}
}, 1000, 1000 );