无法查看数据库返回的数据到edittext

时间:2015-06-24 17:45:42

标签: android sqlite

我正在尝试通过唯一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 上看到等等

1 个答案:

答案 0 :(得分:0)

  

但整个数据显示在同一个edittext

是的,因为您将它全部保存在一个String变量中并将该String设置为一个EditText。我不确定为什么你会期待任何不同的东西。

您需要解析String中的每一个。我建议创建一个类,也许Person.java。在那里,您将拥有从数据库获取的数据的属性。因此,在getEmpName()函数中,您将创建Person类的实例并相应地设置属性,而不是将它们全部保存到单个String变量中。

然后,您可以在getEmpName()末尾调用方法,为您创建的实例设置每个EditText

<强>可替换地,

您可以执行HashMap之类的操作,然后将每个人保存在那里并将其拉出来设置EditText