我试图在我的应用程序中保存用户信息。我有员工编号editText和公司EditText。我的员工编号不是必填字段,这意味着我的表可以具有空值。我的问题是,当我比较用户输入的员工编号是否已存在于我的数据库中时,当用户未在员工编号editText上输入任何内容时,它也会读取空值。有人可以帮我这么做吗?
这是我的代码,我将所有员工编号保存在arraylist中并删除所有空值
ArrayList<String> employeenumber = databaseAdapter.getEmployeeNumber();
employeenumber.removeAll(Collections.singleton(null));
employeenumber.removeAll(Collections.singleton(""));
我想要做的是,如果用户输入员工编号,它将检查arraylist是否包含它,如果是,它将检查公司是否对应它。我需要捕获重复的条目。例如,员工编号为1234,公司为ABCD,程序不得接受。感谢能帮助我的人。
答案 0 :(得分:1)
首先检查用户是否在员工编号editText上输入内容。然后使用int标志来比较它。请在主要活动中尝试以下代码:
int flag1 = 0;
if (!Emp.equals(""))
{
ArrayList<String> CompanyandEmp = new ArrayList<String>();
CompanyandEmp = databaseAdapter.getCompanyEmp(Emp);
CompanyandEmp.removeAll(Collections.singleton(""));
for(int i=0;i< CompanyandEmp.size();i++)
{
String cmpemp = CompanyandEmp.get(i).toString();
if(cmpemp.equalsIgnoreCase(companyName))
{
flag1 = 1;
}
}
}
if (flag1 == 0)
{
//as per your requirement
}else{
Toast.makeText(RegistrationActivity.this, "Account info already exist.", Toast.LENGTH_LONG).show();
}
然后在您的databaseAdapter中:
public ArrayList<String> getCompanyEmp(String emp) {
SQLiteDatabase db = this.getReadableDatabase();
ArrayList<String> companyemp = new ArrayList<String>();
try {
Cursor c = db.query("select CompName FROM projsitemast where Emp='"+emp+"'", null);
if (c != null) {
c.moveToFirst();
for (int j = 0; j < c.getCount(); j++) {
companyemp.add(c.getString(0));
c.moveToNext();
}
c.close();
}
return companyemp;
} catch (Exception e) {
e.printStackTrace();
}
return companyemp;
}