问题描述
|
我知道如何添加EditText,但不在onDraw()函数中。
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(new GaugeAnimation((this),10));
EditText input = (EditText) findViewById(R.id.input);
input.setText(\"hello\");
}
上面的方法不起作用,下面的方法也不起作用:
@Override
public void onDraw(Canvas c){
EditText input = (EditText) findViewById(R.id.input);
input.setText(\"hi\");
}
那我该怎么办呢?我基本上想添加一个可编辑的文本框,但是因为我没有使用:
setContentView(new R.layout.main);
它搞砸了。有什么建议么?
我试过了:
public class GaugeAnimation extends View{
public GaugeAnimation(Context context,int value){
EditText input = new EditText(context);
input.setId(R.id.input);
}
}
但它仍然不起作用我在做什么错?
解决方法
构造
GaugeAnimation
视图时,请确保它对要用于输入的EditText视图调用setId(R.id.input)
。然后,您的第一种方法将起作用。
您应该意识到,不应像尝试过的那样通过视图的onDraw
方法对UI元素进行更新。
, 我想您必须将edittext膨胀到一个视图才能使用它。不夸张地说,您的edittext尚未实例化。