Android ListView适配器中EditText的验证
我有一个ListView适配器,如下所示:Android ListView适配器中EditText的验证,android,listview,android-edittext,android-adapter,Android,Listview,Android Edittext,Android Adapter,我有一个ListView适配器,如下所示: @Override public View getView(int i, View view, ViewGroup viewGroup){ if(layoutInflater == null){ layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } if(view == nul
@Override
public View getView(int i, View view, ViewGroup viewGroup){
if(layoutInflater == null){
layoutInflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
if(view == null){
view = layoutInflater.inflate(R.layout.list_pickingscan, null);
}
final TextView tvMaterialCode = (TextView) view.findViewById(R.id.list_picking_scan_materialcode_tv);
EditText etSerialNumber = (EditText) view.findViewById(R.id.list_picking_scan_serialnumber_tv);
final PickingDetails pickingDetails = pickingDetailsList.get(i);
tvMaterialCode.setText(pickingDetails.getMaterialCode().toString());
etSerialNumber.setText(pickingDetails.getSerialNumber().toString());
etSerialNumber.setMaxLines(1);
return view;
}
}
视图应如下所示:
Material Code Serial Number
Material A ______________
Material B ______________
每次用户在提交按钮之前输入值时,我都要对EditText序列号进行验证。如何进行验证?您可以使用TextWatcher添加验证
private class GenericTextWatcher implements TextWatcher {
private View view;
private GenericTextWatcher(View view) {
this.view = view;
}
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void afterTextChanged(Editable editable) {
switch (view.getId()){
case **First View Id:**
//validation for first edit text
break;
case **second view id :**
//validation for second edit text
break
}
}
}
m_InputMobile.addTextChangedListener(new GenericTextWatcher(m_InputMobile));
secondView.addTextChangedListener(new GenericTextWatcher(secondView));
您可以使用TextWatcher添加验证
private class GenericTextWatcher implements TextWatcher {
private View view;
private GenericTextWatcher(View view) {
this.view = view;
}
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
public void afterTextChanged(Editable editable) {
switch (view.getId()){
case **First View Id:**
//validation for first edit text
break;
case **second view id :**
//validation for second edit text
break
}
}
}
m_InputMobile.addTextChangedListener(new GenericTextWatcher(m_InputMobile));
secondView.addTextChangedListener(new GenericTextWatcher(secondView));
我如何知道根据您的回答选择了哪个editText或职位的editText?好的,让我更新多个editText的答案,但我的问题是相同的,您如何知道在哪个职位上选择了哪个editText?假设您从1个位置选择editText,然后选择2个位置,您如何知道根据位置YUP选择了哪个editText。如何知道EditText位置?在为每个编辑文本创建对象时,将视图引用传递给GenericTextWatcher。因此,您可以获取执行GenericTextWatcher对象的视图的id,如以下开关(view.getId()){case*第一个视图id://第一个编辑文本中断的验证;case第二个视图id://第二个编辑文本中断的验证}*我如何知道根据您的回答选择了哪个editText或职位的editText?好的,让我更新多个editText的答案,但我的问题是相同的,您如何知道在哪个职位上选择了哪个editText?假设您从1个位置选择editText,然后选择2个位置,您如何知道根据位置YUP选择了哪个editText。如何知道EditText位置?在为每个编辑文本创建对象时,将视图引用传递给GenericTextWatcher。因此,您可以获取执行GenericTextWatcher对象的视图的id,如以下开关(view.getId()){case*第一个视图id://第一个编辑文本中断的验证;case第二个视图id://第二个编辑文本中断的验证}*