我在一個fragment1中
執行button按鍵事件的時候,需要重繪textview的內容
大概如下
btnC.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
textview1.settext ="1111111";
//一段操作
textview1.settext ="2222222";
//一段操作
textview1.settext ="3333333";
//一段操作
textview1.settext ="4444444";
}
實際上,以上代碼實作的時候,按鈕按下界面假死,textview1只會顯示最后的“4444444”
于是我加入下面代碼
HandlerThread handlerThread;
private static String TT = "";
class HandlerThread extends Thread
{
Handler mHandler;
HandlerThread(Handler h)
{
mHandler = h;
}
public void run()
{
byte status;
Message msg;
while (true)
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e) {e.printStackTrace();}
{
msg = handler.obtainMessage(0, "");
mHandler.sendMessage(msg);
}
}
}
}
final Handler handler = new Handler()
{
public void handleMessage(Message msg)
{
switch(msg.what)
{
case 0:
if(TV.length()>0)
{
textview1.setText(TV);
}
break;
default:
break;
}
}
};
btnC.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v)
{
TT="1111111";
//一段操作
TT ="2222222";
//一段操作
TT ="3333333";
//一段操作
TT ="4444444";
}
在onCreate中加入
handlerThread = new HandlerThread(handler);
handlerThread.start();
依然不行
只能看到最后顯示的“44444444”
是重繪太快了?
還是什么原因?
uj5u.com熱心網友回復:
你直接Thread.sleep(5000);
不就知道是不是因為重繪太快了么
uj5u.com熱心網友回復:
你在主執行緒同一代碼塊里呼叫設定,可不就是只有最后一個生效嗎。你得通過子執行緒回呼主執行緒更新、或者使用Handler的postDelay方法才能實作你想的那種效果轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/108454.html
標籤:Android
上一篇:關于sqlcipher打開EnMicroMsg.db中message時,軟體崩潰的問題
下一篇:我設定了imagebutton點擊跳轉手機qq,代碼運行沒有報錯,但真機除錯的時候店里我添加的imagebutton沒有反應
