2

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

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

4

2 回答 2

0

当您构建GaugeAnimation视图时,请确保它调用setId(R.id.input)您要用于输入的 EditText 视图。然后你的第一种方法将起作用。

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

于 2011-05-30T18:04:22.060 回答
0

我想您必须将edittext 膨胀到一个视图才能使用它。没有膨胀,你的编辑文本还没有被实例化。

于 2011-05-30T22:29:47.173 回答