onDraw()中的EditText

时间:2011-05-30 17:57:31

标签: android android-edittext ondraw

我知道如何添加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);
 }
}

但它仍然不起作用我做错了什么?

2 个答案:

答案 0 :(得分:0)

构建GaugeAnimation视图时,请确保为要输入的EditText视图调用setId(R.id.input)。那么你的第一种方法就可以了。

您应该知道,您不应该像您尝试的那样从视图的onDraw方法更新UI元素。

答案 1 :(得分:0)

我猜你必须将edittext扩展到视图才能使用它。没有膨胀,你的edittext还没有实例化。