0

在我的 android 应用程序中,我使用了一些普通的列表视图,String []但我有一个来自SQLite数据库的列表视图。它显示它很好,这不是问题。问题是记录我按下了哪个选项,因为它似乎只是记录android.database.sqlite.sqlitecursor@????以及当我使用 toast 来显示字符串时

我必须编写代码才能使用选项名称做我想做的事情

因此,如果有人可以帮助我将选项名称存储在字符串中并在 toast 中使用它,那将是非常有帮助的……因为这是我测试代码的方式。谢谢

如果有帮助,我会发布填充下面列表视图的代码

FavouritesScreen.java... 使用列表视图中的 SQLite 值

final ListView list = (ListView) findViewById(R.id.listView1);
@SuppressWarnings("deprecation")
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, //context
    android.R.layout.simple_list_item_1, db.getValues(), //Cursor
    new String[] {"SocietyName"}, new int[] {
        android.R.id.text1
    });
list.setAdapter(adapter);
list.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
    String favname = (String)((Cursor) list).getString(position);
    Toast.makeText(getApplicationContext(), favname, Toast.LENGTH_SHORT).show();
  }
});

MyDBAdapter.java... 从 SQLite 数据库中获取值

public Cursor getValues() {
  if (!isOpen()) {
    open();
  }
  System.out.println("3a");
  Cursor mCursor = db.query(true, "Favourites", // table name
  new String[] {
    "_id", "SocietyName"
  }, // select clause
  null, // where clause
  null, // where clause parameters
  null, // group by
  null, // having
  null, // order by
  null); // limit
  System.out.println("4a");
  return mCursor;
}
4

2 回答 2

1

list是 ListView 而不是 Cursor(我本以为这会引发异常。)

String favname = (String) ((Cursor) list).getString(position);

首先获取光标,然后调用getString()您感兴趣的列:

String favname = ((Cursor) list.getItemAtPosition(position)).getString(columnIndex);
/* I assume the column you want is 1 */
于 2013-04-17T16:10:19.643 回答
0

android.database.sqlite.sqlitecursor@????'

String favname = (String) ((Cursor) list).getString(position);

是定义。没有给你一个字符串,而是一个 SQLLite 游标。而是使用游标对象来获取您需要的字符串。

您可能应该获得与列表关联的 Adapter 对象,然后询问光标,然后询问该位置上的内容。

或者更好的是,使用这个人:

public void onItemClick(AdapterView<?> arg0

适配器视图对象。询问那个“arg0”对象你在位置上需要什么。

Toast.makeText(getApplicationContext(), arg0.getItemAtPosition(position), Toast.LENGTH_SHORT).show();
于 2013-04-17T16:11:01.293 回答