我需要帮助理解putExtra并检索行ID?

时间:2010-12-12 12:18:20

标签: java android cursor android-intent listener

早上,我很乐意帮助我使用我的特定代码,但如果您忙于使用putExtra和retrieveRow的任何信息也会有很大的帮助。

我正在开发一个小型的android项目,我遇到了第一个需要将数据从一个活动传递到另一个活动的实例,不幸的是我的知识缺乏。我已经尝试过看看android记事本的例子,但我已经变得非常混乱,所以我希望有人可以使用我自己的代码向我解释。

这是我正在尝试做的...我有一个onItemClick监听器,用于从sqlite数据库填充的listview,当它被选中时我想传递行_id以及该行的另一列的内容(BUDGET_AMOUNT)到另一个班级。所以我认为我需要类似下面的东西,但正如你可以看到的所有问号我真的很困惑如何实现我需要的东西。

// add an onclicklistener for when an item on the list is pressed
        incomeView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view, int position, long id)
                {
                Cursor c = ???.retrieveRow(id);

                Intent keypadIntent = new Intent(view.getContext(), Keypad.class);
                keypadIntent.putExtra(???._ID, id);//put extra needs work
                keypadIntent.putExtra(???.BUDGET_AMOUNT, c.getFloat(
                        c.getColumnIndexOrThrow(???.BUDGET_AMOUNT)));
                startActivityForResult (keypadIntent, ???);


                }
            });

上面的代码来自我的Budget.java类,我上传了here。我还有一个名为Data.java的类,它扩展了SQLiteOpenHelper和一个名为DatabaseConstants的类,它只有一大堆用于类别和查询的字符串变量。感谢您抽出宝贵时间来查看或提供建议。

1 个答案:

答案 0 :(得分:1)

看看这是否有帮助。我认为我的实现与你的实现略有不同,但是用于类似的功能。

protected void onListItemClick(ListView l, View v, int position, long id) {
    super.onListItemClick(l, v, position, id);
    // Get the item that was clicked

    Intent selectedProjectType = new Intent();

    Cursor o = (Cursor) this.getListAdapter().getItem(position);
    String keyword = o.getString(1);

    selectedProjectType.putExtra("selectedprojecttype", keyword);

    setResult(RESULT_OK, selectedProjectType);
    finish();
}