停止.setText覆盖?从数据库游标结果

时间:2016-06-12 17:52:02

标签: java android android-database

我正在使用带游标的方法返回所有具有相同id的值,例如:

ID_Owner | ID_Car

1 -------- 1

1 -------- 2

拥有id的车主,车1和2 ..

使用我的方法即可返回这些值:

// Seleciona o Registo com o ID especeficado
public Cursor selectMotivosWhereId(long id){
    String sql = "SELECT * FROM Motivo_sintomas WHERE _ID IN (SELECT id_motivo FROM Sintoma_motivos WHERE id_sintoma = ?) " ;
    String[] args = new String[]{id + ""};
    Cursor result = this.db.rawQuery(sql, args);
    return result;
}

然后,我想在同一个textview中显示它们,但只显示最后一个,我想是因为.setText会覆盖,只会显示最后一个。

Cursor res2 = dal.selectMotivosWhereId(position);
    res2.moveToFirst();
    while (!res2.isAfterLast()) {
        Motivo.setText(res2.getString(res2.getColumnIndex(DBContract.Motivo_sintomas.COL_Motivo)));
        res2.moveToNext();
    }

如何继续将值添加到edittext并将其与" - "分开?或"," ?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您必须使用StringBuilder并将结果附加到StringBuilder对象,然后将textbuilder对象设置为text。

Cursor res2 = dal.selectMotivosWhereId(position);
res2.moveToFirst();
StringBuilder sb = new StringBuilder();
while (!res2.isAfterLast()) 
{
    sb.append(res2.getString(res2.getColumnIndex(DBContract.Motivo_sintomas.COL_Motivo));
    res2.moveToNext();
}
 Motivo.setText(sb.toString());