Android正在验证edittext中的用户输入在适配器中不起作用



我想从用户那里获得名字和姓氏,并且输入的数量会动态变化;在验证输入时,它不起作用。

验证代码为;

public class IndividualAdapter extends ArrayAdapter<Individual> {
    List<Individual> individualList;
    LayoutInflater vi;
    ViewHolder holder;
    public IndividualAdapter(Context context, List<Individual> objects) {
        super(context, R.layout.inidividual_list, objects);
        vi = (LayoutInflater) context
                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        individualList = objects;
    }
    static class ViewHolder {
        public EditText edtfName;
        public EditText edtlName;
        private TextView txtType;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        Individual ind = getItem(position);
        if (v == null) {
            holder = new ViewHolder();
            v = vi.inflate(R.layout.inidividual_list, parent, true);
            holder.edtfName = (EditText)findViewById(R.id.fst_name);
            holder.edtlName = (EditText)findViewById(R.id.lst_name);
            holder.txtType = (TextView)findViewById(R.id.typeValue);
        }
        holder.txtType.setText(ind.getType());
        String fName = holder.edtfName.getText().toString().trim();
        String lName = holder.edtlName.getText().toString().trim();
        if (fName.equals(" ")) {
            holder.edtfName.setError("First Name Can not be empty");
            holder.edtfName.setText("First Name Can not be empty");
        }
        if (lName.equals(" ")) {
            holder.edtlName.setError("Last Name Can not be empty");
            holder.edtlName.setText("Last Name Can not be empty");
        }
        return v;
    }
}

提交文本字段后,我一点击下一个按钮,我的应用程序就会崩溃
在不填写字段的情况下,它不会显示任何错误。

为什么不在活动类中检查null异常。我认为你所做的不是一个好的编码实践。然而,你为什么不在下面这样尝试呢

if(fName!=null && fName.length()>0)
EditText txtUserName = (EditText) findViewById(R.id.txtUsername);
String strUserName = usernameEditText.getText().toString();
if (strUserName.trim().equals("")) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}
or use the TextUtils class like this :
if(TextUtils.isEmpty(strUserName) {
    Toast.makeText(this, "plz enter your name ", Toast.LENGTH_SHORT).show();
    return;
}

这是因为您正在修剪文本并检查if (fName.equals(" "))。尝试删除该空间并像这样检查if (fName.equals(""))

最新更新