繁体   English   中英

从listView中单击的Item的数据库中获取的getID

[英]getID from database of the Item clicked of a listView

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

在第一个活动中,我在其中具有“课程”的listView。 在第二个中,我有另一个“注释”的listView。

我可以使用SQLite添加“课程”和“注释”。 当我单击“课程”时,它会打开“笔记活动”,并且仅显示为该ID创建的笔记(我使用FK)。

假设我创建了一个名为“数学”的“课程”。 我单击它,然后创建一个注释“ Test”。 之后如果单击“数学”,则可以在其他活动中看到“测试”注释。

但是,假设我创建了一个称为“法语”的“课程”。 如果单击它,将会显示测试注释,如果单击数学,它将显示我没有注释。

发生这种情况是因为我的ListView是由ASC订购的。 而且我正在获取ListView位置的ID。

一开始,Math的ID为1。但是当我创建法语时,Math的ID为2,French的ID为1。 但是在我的数据库SQlite中,数学的ID为1,法语的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");

先感谢您 !

long的价值onItemClick应的ID,如果你使用了游标和你列有一个id列_id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM