我希望你们能帮助解决我的问题。
我的问题是无法检索列的多个值。在我的数据库中包含4列(id,namaStation,ticket,masa)。现在程序只显示namaStation的值。它是因为Comment类中的toString()方法因为它只返回1值(namaStation)。可以帮帮我??
`public void onClick(查看视图){
@SuppressWarnings("unchecked")
ArrayAdapter<Comment> adapter = (ArrayAdapter<Comment>) getListAdapter();
Comment comment = null;
switch (view.getId()) {
case R.id.add:
List<Comment> values = datasource.query("Kelana Jaya");
adapter = new ArrayAdapter<Comment>(this, android.R.layout.simple_list_item_1, values);
setListAdapter(adapter);
break;`
@SuppressWarnings("static-access")
public List<Comment> query(String namaStation){
//List<Comment> comments = new ArrayList<Comment>();
database = dbHelper.getReadableDatabase();
List<Comment> comments = new ArrayList<Comment>();
Cursor cursor = database.query(MySQLiteHelper.TABLE_COMMENTS,
allColumns, MySQLiteHelper.COLUMN_namaStation+"=?",new String[]{namaStation}, null, null, null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
// Comment comment = cursorToComment(cursor);
Comment comment = new Comment();
comment.setId(cursor.getLong(0));
comment.setNamaStation(cursor.getString(1));
comments.add(comment);
comment.setTicket(cursor.getString(2));
comments.add(comment);
cursor.moveToNext();
}
// Make sure to close the cursor
cursor.close();
return comments;
public class Comment {
private long id;
public String namaStation;
public String ticket;
public String masa;
public String comment;
public int x;
public Comment(){
}
public Comment(long id, String namaStation, String ticket, String masa){
this.id=id;
this.namaStation=namaStation;
this.ticket=ticket;
this.masa=masa;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNamaStation() {
return namaStation;
}
public void setNamaStation(String comment) {
this.namaStation = comment;
}
public String getTicket() {
return ticket;
}
public void setTicket(String comment) {
this.ticket = comment;
}
public String getMasa() {
return masa;
}
public void setMasa(String comment) {
this.masa= comment;
}
// Will be used by the ArrayAdapter in the ListView
public String toString() {
return ticket;
}
}
答案 0 :(得分:0)
您将comment
两次添加到列表
comments.add(comment);
comment.setTicket(cursor.getString(1));
comments.add(comment);
旁注:你可以简化
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
// do stuff
cursor.moveToNext();
}
到这个
while (cursor.moveToNext()) {
// do stuff
}
您只看到名称的实际问题是您使用了错误的适配器。你需要创建自己的。如果有理由将您的查询结果转换为数组,或者直接使用ArrayAdapter
,则基于CursorAdapter
。
here是您可以使用的示例。
答案 1 :(得分:0)
您应该自己创建ArrayAdapter。您可以为商品提供自己的布局。
因此,您可以将任何列放在您想要的位置。
加入toString中的所有字段并不是“高科技”。 在简单的情况下可能就足够了
以下链接有用 http://www.vogella.de/articles/AndroidListView/article.html#listview_adapterintro