我知道如何添加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);
}
}
但它仍然不起作用我做错了什么?
答案 0 :(得分:0)
构建GaugeAnimation
视图时,请确保为要输入的EditText视图调用setId(R.id.input)
。那么你的第一种方法就可以了。
您应该知道,您不应该像您尝试的那样从视图的onDraw
方法更新UI元素。
答案 1 :(得分:0)
我猜你必须将edittext扩展到视图才能使用它。没有膨胀,你的edittext还没有实例化。