【问题标题】:Setting text dynamically of EditTextEditText 动态设置文本
【发布时间】:2012-03-18 14:24:30
【问题描述】:

我无法弄清楚如何动态设置 EditText 的文本。 stackoverflow 的一位用户建议我使用onTextChanged(),但我也不这样做。所以我读了一个小时,当试图实现它时,错误错误错误! 所以,我又问这个问题了。

我有两个EditTexts et1 和 et2。两者都是NumberDecimal.et2 类型是unfocusableunclickable。用户只能在et1 中输入值。我想要的是,一旦用户在et1 中输入一个数字,该数字应该显示在et2 中。所以,如果用户必须输入10,他会先输入1,那个1也应该显示在et2中。现在要完成数字,他将输入0,然后数字10应该显示在et2中。所以,et2应该根据 et1 中的条目逐个字符更新。

这就是我从 et1 中读取的方式:

et1=(EditText) findViewById(R.id.et1);
et2=(EditText) findViewById(R.id.et2);
String read=et1.getText().toString();
if(read.length()!=0)
{
float a=Float.parseFloat(read);
}

现在,如果我在 et2 上使用 setText(),那将不是动态的,而且我将不得不使用 button 来显示 et2 中的文本,它将显示整个 String,它在 et1 中输入,直到按钮被点击了。

在 et1 上使用 Listener 是个好主意,但我不知道它在 onTextChanged 上的实现,因为我是新手。

请帮忙。

谢谢你的期待。

【问题讨论】:

    标签: java android


    【解决方案1】:

    使用下面的代码

    final TextView et2 = new TextView(this);
            TextView et1 = new TextView(this){
                @Override
                protected void onTextChanged(CharSequence text, int start,
                        int before, int after) {
                    // TODO Auto-generated method stub
                    super.onTextChanged(text, start, before, after);
                    et2.setText(this.getText());
                }
            };
    

    现在将这些 et1,et2 添加到任何布局中。

    【讨论】:

    • 这不能与 EditTexts 一起使用吗?
    • 同理添加。
    【解决方案2】:

    我必须做与您尝试做的事情相同的事情,我使用了 KeyListener。每次按下某个键时只需更新 EditText。

    检查一下:

    http://developer.android.com/reference/android/text/method/KeyListener.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-22
      • 2020-09-14
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-03
      • 1970-01-01
      • 2015-09-05
      相关资源
      最近更新 更多