在Adapter之外的listview中获取EditText

时间:2014-12-16 15:58:22

标签: android listview android-listview

我有一个listview,每行都有一个EditText。 每个EditText都有他的验证,因此,当我单击MenuItem" Finish"时,我想对每个EditText进行验证并显示错误(如果有的话)。

我知道如何在我的适配器中访问我的EditText,但在我的适配器中,我无法访问MenuItem。 在我的适配器之外,我可以访问我的MenuItem OnClick,但我无法再获取我的edittext值...

任何解决方案???

3 个答案:

答案 0 :(得分:3)

您可以遍历listView并执行以下操作:

View v = myList.getAdapter().getView(i, null, null);
EditText et = (EditText) v.findViewById(nameOfTheView);

检查this answer

答案 1 :(得分:0)

我解决了使用:ListView item set error Android

解决方案是在适配器中包含一个ArrayList错误。

Tx求助!

答案 2 :(得分:-1)

您可以做的一件事是设置一个类来保存变量:

public class MyVarHolder {
    public EditText myText;
}

然后将其用于getView方法:

mHolder.myText = (EditText) root.findViewById(R.id.my_edit_text);
convertView.setTag(mHolder);

最后一步是让持有者进入列表的onClickListener:

onItemClickListener(AdapterView<?> adapterView, View view, int position, long id) {
    MyVarHolder tag = (MyVarHolder)view.getTag();

   String editText = tag.myText.getText().toString();

   ...Do whatever you want...

}