我將一個類子類化爲Button並覆蓋onDraw()方法。並且在類的構造函數中寫了一個處理程序,我正在更新其值必須更新爲該按鈕文本的變量。下面是代碼片段,這導致自定義按鈕文本更新UI線程(或)Android中的onDraw
public class CustomButton extends Button{
CustomButton(){
handler = new Handler();
Runnable runObj = new Runnable(){
public void run(){
counter++;
handler.postDelayed(this,1000);
}
};
handler.post(runObj);
}
@Override
protected void onDraw(Canvas canvas){
super.onDraw(canvas);
setBackgroundResource(R.drawable.button9patch);
setTextColor(COMPONENTTEXTCOLOR);
setText(counter);
}
}
那麼按鈕文本得到更新。我知道onDraw()方法在最初呈現按鈕時以及我們對按鈕視圖進行一些修改(如設置標籤或圖像等)時會被調用。
在我的代碼中,我正在更新onDraw()方法以外的計數器,但是顯式地從onDraw()方法調用setText(counter)。因爲我沒有從Hanlder代碼中調用setText(counter)它如何定期更新按鈕文本?
是否導致計數器變量更改的UI線程定期更新爲按鈕?
我很困惑。
謝謝
請更新您的問題格式。底部的文本很難以這種方式閱讀。 – Knickedi