onDraw中的EditText

问题描述

| 我知道如何添加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尚未实例化。