我尝试在代码中的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
答案 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。 这也可能有效,但却非常罕见和脆弱。如果你以后改变布局你也 必须更新代码。