检查动态添加的TextEdit是否在其中包含文本

时间:2016-10-27 13:49:15

标签: android android-studio

我重写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(""))

得到了相同的结果。

1 个答案:

答案 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("")