我正在尝试通过唯一ID查看数据视图,我想使用手机作为唯一ID 我创建了以下数据库代码
public String getEmpName(String empphone) throws SQLException {
String[] columns = new String[] { EMP_ID, EMP_NAME, EMP_DOB, EMP_ADDR, EMP_PHONE };
Cursor c = ourDatabase.query(EMPINFO_TABLE_NAME, columns, EMP_PHONE + "="
+ empphone, null, null, null, null, null);
String result = "";
int iRow = c.getColumnIndex(EMP_ID);
int iName = c.getColumnIndex(EMP_NAME);
int iADDR = c.getColumnIndex(EMP_ADDR);
int iPHONE = c.getColumnIndex(EMP_PHONE);
int iDOB = c.getColumnIndex(EMP_DOB);
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
result = result + c.getString(iRow) + " " + c.getString(iName)
+ " " + c.getString(iADDR)+ " " + c.getString(iPHONE)+ " " + c.getString(iDOB)
+ "\n";
}
return result;
}
public void onClick(View view){
String empname=nameedittext.getText().toString();
String empdateofbirth=dateedittext.getText().toString();
String empaddress=addressedittext.getText().toString();
String empphone=phoneedittext.getText().toString();
dbhandle=new DBhandle(this);
dbhandle=dbhandle.open();
String data=dbhandle.getEmpName(empphone);
nameedittext.setText(data);
}
问题是,当点击按钮我能够获得唯一的数据,但整个数据显示在相同的edittext中,即nameedittext但我想要的是电话号码应该在 phoneedittext 中看到,名称应该在 nameedittext 上看到等等
答案 0 :(得分:0)
但整个数据显示在同一个edittext
中
是的,因为您将它全部保存在一个String变量中并将该String设置为一个EditText
。我不确定为什么你会期待任何不同的东西。
您需要解析String
中的每一个。我建议创建一个类,也许Person.java
。在那里,您将拥有从数据库获取的数据的属性。因此,在getEmpName()
函数中,您将创建Person
类的实例并相应地设置属性,而不是将它们全部保存到单个String
变量中。
然后,您可以在getEmpName()
末尾调用方法,为您创建的实例设置每个EditText
。
<强>可替换地,强>
您可以执行HashMap之类的操作,然后将每个人保存在那里并将其拉出来设置EditText
。