[英]Android : Cannot cast FloatLabeledEditText to EditText
[英]Cast Class object to EditText in Android?
public void changeCurrency(RelativeLayout layout) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
Class c = v.getClass();
if (c == EditText.class) {
// validate EditClass
} else if (c == TextView.class) {
//validate RadioButton
}
}
}
在上面的代碼中,我試圖遍歷布局中的gui元素並驗證其內容。 我正在為評論部分苦苦掙扎。
即可以訪問EditText的文本值。
我不知道如何將c對象轉換為EditText來檢查值。
想法?
嘗試使用以下邏輯
View v = layout.getChildAt(i);
if (v instanceof EditText) {
EditText et = (EditText) v;
//Do stuff
} else if (v instanceof TextView) {
//Do other stuff
}
由於EditText
是TextView
的子TextView
,因此需要首先檢查EditText
。 EditText
作為TextView
的實例將測試為正。
大多數使用文本的視圖都從TextView擴展。 如果您要做的只是驗證文本,這應該就足夠了。
public void changeCurrency(RelativeLayout layout) {
for (int i = 0; i < layout.getChildCount(); i++) {
View v = layout.getChildAt(i);
if (v instanceof TextView) {
TextView t = (TextView) v;
String text = t.getText().toString();
// ...
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.