拡張しているクラスがありLinearLayout
ます。
以下のコードスニペット:
class MyLinearLayout extends LinearLayout{
static TextView txt;
static Button btn;
static LayoutInflater inflater;
public MyLinearLayout(Context context) {
super(context);
// TODO Auto-generated constructor stub
View.inflate(context, R.layout.displayinfo, this);
inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
protected void onLayout(boolean changed, int l, int t, int r, int b) {
// TODO Auto-generated method stub
super.onLayout(changed, l, t, r, b);
}
public void change(){
View view =inflater.inflate(R.layout.displayinfo, null);
//Button btn = (Button) inflate(context, R.id.btn, null);
txt = (TextView) view.findViewById(R.id.textView1);
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
txt.setText("Changed");
}
};
//view.refreshDrawableState();
}
@Override
protected void onDraw(Canvas canvas) {
change();
}
}
しかし、onDraw()
->change()
メソッドが呼び出されても値は変更されません。このビューを に追加していますWindowManager
。
この拡張ビューでは、基本的に から値を更新する必要がありarray
ます。しかし、問題はループを連続して呼び出す方法ですか? を呼び出すinvalidate()
と、継続的に呼び出すことができますが、CPU 使用率が増加するだけでなく、ビューが非常に速く更新されるため、ユーザーは実際に を表示できませんView
。
したがって、基本的に2つの問題があります。
1.TextView
上記のコード スニペットで更新されていませんか?
2.メソッドを呼び出さずにビュー値を基本的に継続的に更新するにはどうすればよいinvalidate()
ですか?
前もって感謝します