我知道如何添加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);
}
}但是它仍然不工作,我做错了什么?
发布于 2011-05-31 02:04:22
在构造GaugeAnimation视图时,请确保它为要用于输入的EditText视图调用setId(R.id.input)。那么你的第一个方法将会起作用。
您应该意识到,您不应该像您所尝试的那样,从视图的onDraw方法更新UI元素。
发布于 2011-05-31 06:29:47
我猜您必须将edittext膨胀为一个视图才能使用它。如果不膨胀,你的edittext还没有被实例化。
https://stackoverflow.com/questions/6179384
复制相似问题