点击listView的项目数据库中的getID

时间:2017-03-20 13:36:49

标签: android sqlite listview

我有一个包含两个活动的应用。在每个活动中,我都有一个listView,里面有一些内容。

在第一个活动中,我有一个列表视图" Cours"内。在第二个我有另一个listView of" Notes"。

我可以添加" Cours"和"笔记"通过使用SQLite。当我点击" Cours"时,它会打开Notes活动,它只显示为该ID创建的注释(我使用FK)。

让我们说我创造了一个" Cours"叫数学。我点击它然后创建一个笔记"测试"。 如果我点击数学,我可以在另一个活动中看到注释测试。

但是,让我们说我创造了一个" Cours"叫法语。如果我点击它,我会有笔记测试,如果我点击数学,它会说我没有笔记。

这是因为我的ListView是由ASC订购的。我得到了ListView的位置ID。

一开始,Math有ID 1.但是当我创建法语时,Math有ID 2而法语有ID1。但在我的数据库SQlite中,Math的ID为1,French的ID为2。

所以:当我点击第一个ListView的项目时,如何获取数据库的ID而不是listView上的位置ID?

这是我的第一个ListView的ClickListener:

       lv.setOnItemClickListener(new AdapterView.OnItemClickListener()
    {

        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {


            long itemid= lv.getItemIdAtPosition(i);
            int id= (int)itemid;
            String a =lv.getItemAtPosition(i).toString();

            Intent b = new Intent(AffichageCours.this,AffichageNotes.class);
            Bundle args = new Bundle();
            args.putString("nom_cours",a);
            args.putInt("id",id);
            b.putExtras(args);
            startActivity(b);
        }

    });
}

在第二项活动中,我如何恢复价值观:

   Intent intent = getIntent();
    Bundle args = intent.getExtras();
    int id = args.getInt("id");
    String nom_cours = args.getString("nom_cours");

提前谢谢!

1 个答案:

答案 0 :(得分:0)

berrybrew off 中的long值应为id,如果您使用了游标且您的列的id列为onItemClick