android應用開發:實時改變TextView的值

線程實時刷新TextView值:ide

思路:spa

1)使用handler通知view修改值;線程

2)標誌位控制線程的中止/開始;blog

wKioL1MuvaCRUBA_AABQoT4CPZE073.jpgwKioL1MuvaCDN69JAABQgcS7SO0767.jpg


/**進程

* 一、刷新線程get

* it

* @author wxmio

* class

*/float

class RefreshThread implements Runnable {

public void run() {

while (isStop) {

try {

handler.sendMessage(handler.obtainMessage());

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}


}

}

}

備註:sendMessage發送消息


/**

* 二、實時刷新界面

*/

Handler handler = new Handler() {

public void handleMessage(Message msg) {

super.handleMessage(msg);

System.out.println("count--->" + count);

if (count == 5) {

isStop = false;

try {


Thread.sleep(3000);

isStop = true;

count = 0;

new Thread(mRefreshThread).start();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

textview.setText(String.valueOf(count++));


}

};

備註:接收消息,並修改中止/開始標誌位

三、初始化控件

private TextView textview = null; // TextView 控件

private int count = 0;//初始化數值

private RefreshThread mRefreshThread = null;//刷新線程

private boolean isStop = true;// 線程控制標誌


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);


textview = (TextView) findViewById(R.id.textview);

mRefreshThread = new RefreshThread();

textview.setText(String.valueOf(count));

new Thread(mRefreshThread).start();// 開始進程


}

相關文章
相關標籤/搜索