我重写onFocusChanged
以确定刚失去焦点的TextEdit。关键是如果TextEdit中没有任何文本,则删除它。问题是if((EditText...
无效。我得到cannot resolve method 'getText()'
。我试过把它告诉它是一个EditText视图。
listItemsView
是LinearLayout的id,listItems是EditText的ArrayList。
@Override
public void onFocusChange(View view, boolean hasFocus) {
if (!hasFocus) {
int removeCurrent = listItems.indexOf(this)+1;
// code to execute when EditText loses focus
if((EditText)view.getText().equals("")) {
}
listItemsView.removeViewAt(removeCurrent);
listItems.remove(removeCurrent);
}
}
我也试过了:
if((EditText)listItemsView.getChildAt(removeCurrent).getText().equals(""))
得到了相同的结果。
答案 0 :(得分:3)
如果要将值转换为类型,请执行以下操作:
(T)V
T
是您要投放到的类型,V
是值。
到目前为止一直很好?
在您的代码中,
(EditText)view.getText().equals("")
什么是V
,什么是T
?答案可能会给你带来惊喜! T
显然是EditText
,但V
实际上是view.getText().equals("")
!
换句话说,您没有将view
投射到EditText
。这就是编译器无法找到名为getText
的方法的原因。要告诉编译器专门强制转换view
,请添加括号:
((EditText)view).getText().equals("")