【问题标题】:Android SQLite: Read dataset in onItemClickAndroid SQLite:在 onItemClick 中读取数据集
【发布时间】:2014-05-30 12:23:51
【问题描述】:

我的数据库中的条目通过 ListView 显示。通过单击一个条目,我想将该条目保存在一个文件中。我知道 Cursor 将相关数据集保存到long id,但我没有找到让我获取它的方法。

提前感谢您的宝贵时间:)

...
    listView = (ListView) findViewById(R.id.listView1);     

    String[] columns = new String[] { "s1", "s2",
            "s3", "s4", "s5", "s6" };

    int[] datasetViews = new int[] { R.id.col1, R.id.col2, R.id.col3,
            R.id.col4, R.id.col5, R.id.col6 };


    simpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.dataset, cursor, columns, datasetViews,
            CursorAdapter.FLAG_REGISTER_CONTENT_OBSERVER);

    listView.setAdapter(simpleCursorAdapter);
    listView.setClickable(true);

    listView.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> a, View v, int position, long id) {
            /* simpleCursorAdapter.getItem(position) gives me
                    android.database.sqlite.SQLiteCursor@447c8888, but I want the    
            content of the cursor. How do I do that? */
        }
    });
}
...

【问题讨论】:

    标签: android sqlite onitemclick


    【解决方案1】:
    1. 您需要做的第一件事是使用 getter 和 accessors 为您的数据创建一个模型类。
    2. 然后创建一个自定义适配器,虽然不是必需的。
    3. 返回包含您数据库中项目的列表。
    4. 将该列表添加到阵列适配器。
    5. 使用位置获取物品..
    6. 使用对象模型中的 getter 来获取所需的数据。

      //试试这个

      在此处输入代码

      String itemName = ((YourModel) getListAdapter().getItem(position)).getYourItemName();

    然后就可以保存item值了。

    【讨论】:

    • 我已经实现了所有这些类(我认为在这里发布它们有点过分,但如果你有必要,我会发布它们)。这只是我必须在 onItemClick 方法中做的事情。
    • “缺失的链接”是Cursor c = simpleCursorAdapter.getCursor(); c.moveToPosition(position);。感谢您的回答,Chloe33 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-24
    相关资源
    最近更新 更多