首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >onDraw()中的EditText

onDraw()中的EditText
EN

Stack Overflow用户
提问于 2011-05-31 01:57:31
回答 2查看 1K关注 0票数 2

我知道如何添加EditText,但不知道如何在onDraw()函数中添加。

代码语言:javascript
复制
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");
}

上面的不起作用,下面的也不起作用:

代码语言:javascript
复制
@Override
public void onDraw(Canvas c){


    EditText input = (EditText) findViewById(R.id.input);
    input.setText("hi");

}

那么我该怎么做呢?我基本上想添加一个可编辑的文本框,但因为我没有使用:

代码语言:javascript
复制
setContentView(new R.layout.main);

真是一团糟。有什么建议吗?

我试过了:

代码语言:javascript
复制
public class GaugeAnimation extends View{
         public GaugeAnimation(Context context, int value){
            EditText input = new EditText(context);
    input.setId(R.id.input);
 }
}

但是它仍然不工作,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-31 02:04:22

在构造GaugeAnimation视图时,请确保它为要用于输入的EditText视图调用setId(R.id.input)。那么你的第一个方法将会起作用。

您应该意识到,您不应该像您所尝试的那样,从视图的onDraw方法更新UI元素。

票数 0
EN

Stack Overflow用户

发布于 2011-05-31 06:29:47

我猜您必须将edittext膨胀为一个视图才能使用它。如果不膨胀,你的edittext还没有被实例化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6179384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档