我想在幾秒鐘後改變文本按鈕,比如5秒。更改按鈕的文本,一段時間後,當你點擊它,在Android中
假設你有一個活動的一個鍵啓動,有文字「?」, 當你點擊這個按鈕,它應該採取AY數量從一系列假設0-10, 顯示爲文本一個號碼後在一個按鈕上它應該再次變成「?」 5秒後。
我試過Thread.sleep(),但它沒有工作。
由於
我想在幾秒鐘後改變文本按鈕,比如5秒。更改按鈕的文本,一段時間後,當你點擊它,在Android中
假設你有一個活動的一個鍵啓動,有文字「?」, 當你點擊這個按鈕,它應該採取AY數量從一系列假設0-10, 顯示爲文本一個號碼後在一個按鈕上它應該再次變成「?」 5秒後。
我試過Thread.sleep(),但它沒有工作。
由於
使用:
btn.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
btn.setText(""+i);
Handler.postDelayed(new Runnable()
{
public void run()
{
btn.setText("?");
}
}, 5000);
}
}
//聲明在類級
定時器定時器= NULL;
Handler handler=new Handler() {
@Override
public void handleMessage(Message msg)
{
// update UI here i.e. set The value on Text View
}
};
//從活動調用startTheTask方法,它將啓動一個計時器將每5秒鐘後工作
空隙startTheTask() {
if(timer != null)
{
timer.cancel();
timer = new Timer();
TimerTask timerTask = new TimerTask()
{
public void run()
{
// your random number code generation here
// to update UI call
handler.sendMessage(handler.obtainMessage());
}
};
timer.schedule(timerTask, 5000);
}
}
這是一個工作的Button衍生物。
package com.anonymous.sample;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
public class AutoChangeButton extends Button {
private static final int DEFAULT_DELAY = 1000;
private Runnable backToQuestionMark = new Runnable() {
public void run() {
setText("?");
}
};
private void initButton() {
setText("?");
this.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
setText("foo~~");
postDelayed(backToQuestionMark, DEFAULT_DELAY);
}
});
}
public AutoChangeButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
initButton();
}
public AutoChangeButton(Context context, AttributeSet attrs) {
super(context, attrs);
initButton();
}
public AutoChangeButton(Context context) {
super(context);
initButton();
}
}
您可以設置定時器,當點擊按鈕並更改按鈕上的文字像下面的下面的代碼:
button1.setOnClickListener(new View.OnClickListener(){
public void onClick(View view)
{
button.setText(sometext);
timer.schedule(new TimerTask()
{
public void run()
{
button.setText(text);
}
}, 0, 3000);
}
}
謝謝,我已經實現了同樣的事情,這是工作的罰款。 – 2012-02-07 06:27:40
如果您的問題解決了,請接受答案,這將有助於您在將來快速獲得答案。 – jeet 2012-02-07 06:40:38