【发布时间】:2016-02-08 13:58:20
【问题描述】:
我有一个列表框,它在列表框的每一行中都包含 EditBox。在按钮 Save 我必须检查是否所有 EditText 对象都填充了数据。
ListView 的适配器是这样构造的:
public class LvAdapter extends BaseAdapter {
Activity activity;
Context context;
ArrayList<PList> arrayPList;
public LvAdapter(Context mContext, ArrayList<PList> array) {
context = mContext;
activity = (Activity) context;
arrayPreStart = array;
}
@Override
public int getCount() {
return arrayPList.size();
}
@Override
public Object getItem(int arg0) {
return arg0;
}
@Override
public long getItemId(int arg0) {
return arrayPList.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup arg2) {
LayoutInflater inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ViewHolder viewHolder = new ViewHolder();
convertView = inflater.inflate(R.layout.row_prestartcheck_list, null);
viewHolder.edComment = (EditText) convertView.findViewById(R.id.edComment);
viewHolder.edComment.setTag(position);
return convertView;
}
}
public class ViewHolder {
EditText edComment;
}
在主类中定义一个自定义方法来检查任何空的 EditText : MainClass.java:
ListView lvQuestion;
ArrayList<PList> arrayPList = new ArrayList<>();
PList pList = new PList();
btnEnter.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
boolean isAnyEmpty=true;
for (int i=0; i<arrayPList.size(); i++) {
View view = lvQuestion.getAdapter().getView(i, null, null);
EditText quantity = (EditText) view.findViewById(R.id.edComment);
quantity.requestFocus();
quantity.setError("asdasda");
isAnyEmpty=false;
break;
}
});
}
我已经使用 setText 测试了对象并且对我来说工作正常,但只有 requestfocus 和 setError 不起作用,请帮助解决这个问题或给我替代解决方案
【问题讨论】:
-
只需检查您的 getview() 中的 edittext;按位置
-
但是我有一个不同视图的按钮,这就是为什么我使用这个函数进行空检查,我将使用这个函数来对付按钮点击监听器。
标签: android listview baseadapter