我有我的课程正在扩展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
. 但问题是如何连续调用循环?调用 aninvalidate()
可以帮助我连续调用它,但它会增加 CPU 使用率,并且视图刷新得如此之快,以至于用户实际上无法查看View
.
所以基本上我有两个问题:
1.TextView
上面的代码片段没有更新?
2.我们如何在不调用invalidate()
方法的情况下基本持续更新视图值?
提前致谢