클래스를 Button에 서브 클래 싱하고 onDraw() 메서드를 재정의했습니다. 그리고 그 버튼 텍스트로 값을 업데이트해야하는 변수를 업데이트하고있는 클래스의 생성자에 핸들러를 작성했습니다. 아래는 코드 스 니펫입니다.UI의 스레드 (또는) 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() 메서드 외부에서 카운터를 업데이트하지만 onTraw() 메서드에서 setText (counter)를 명시 적으로 호출합니다. Hanlder 코드에서 setText (counter)를 호출하지 않을 때 버튼 텍스트를 주기적으로 업데이트하는 방법은 무엇입니까?
카운터 변수를 변경하는 UI 스레드가 정기적으로 단추로 업데이트 되었습니까?
혼란 스럽습니다.
감사
질문 형식을 업데이트하십시오. 하단의 텍스트는 그렇게 읽기가 어렵습니다. – Knickedi