在EditText上设置文本时出现Android错误

时间:2014-11-16 20:42:14

标签: android-edittext

我尝试在代码中的EditText上设置文本,但收到以下错误: -

  

java.lang.ClassCastException:android.widget.LinearLayout无法强制转换为android.widget.EditText

我有几个正确编辑文本的文本,这个文本位于嵌套在父LinearLayout上的LinearLayout上。所以我有

LinearLayout1
     EditText1   >- Set text works ok
       Nested LinearLayout2
          EditText2  >-  Find elements works ok but setText fails with the error above.

我尝试将目标设置为LinerLayout1和2(c是子循环中的索引)

代码片段如下: -

View tmp = target.getChildAt(c);
EditText et = (EditText) target.getChildAt(c);
//et correctly resolves as the correct EditText
String s = "[some value]";
et.setText(s);  << this throws the above error

1 个答案:

答案 0 :(得分:0)

你试过用过吗?

    EditText et = (EditText) (EditText) this
            .findViewById(R.id.EditText2);

在布局文件中

    <EditText android:id="@+EditText2/" .../>

如果您正在使用

     int c=5;
     this.getChildAt(c); 

你正在获得第五个elemenet in the curent layout hirarchy。 这也可能有效,但却非常罕见和脆弱。如果你以后改变布局你也 必须更新代码。