如何从ListView获取数据。 (我的列表视图有3项)

时间:2014-02-25 09:38:44

标签: android listview onclick

我想从Listview中检索数据,其中我的列表有4个项目,如name,date,sem,category。

我想阅读列表视图中的文本并将其传递给另一个活动。

3 个答案:

答案 0 :(得分:2)

如果要从服务器检索数据,则需要在项目单击ListView上获取项目。像

  listview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {

              String name =urarraylist.get(position).get("name");// here you have to pas keyname which is put inyour Hashmap arraylist
              String category =urarraylist.get(position).get("category");
              String date=urarraylist.get(position).get("date");
              String sem=urarraylist.get(position).get("sem");
              Intent i = new Intent(getBaseContext(),anotheractivity.class);
              i.putExtra("name", name);
              i.putExtra("category ", category );
              i.putExtra("date", date);
              i.putExtra("sem", sem);
              startActivity(i); 
            }
        });

现在在onCreate()方法的下一个Activity中检索此数据。像

       Intent n = getIntent();
       String name = n.getStringExtra("name");
       String category = n.getStringExtra("category ");
       String date= n.getStringExtra("date");
       String sem= n.getStringExtra("sem");

答案 1 :(得分:1)

顾名思义,ListView不包含数据,只包含Views。这些视图通常是通过数组创建的,或List通过Adapter创建的。因此,您必须要求您的适配器检索数据。

不幸的是,没有默认方法,所以你必须创建自己的getter,或者你也可以循环使用ListView适配器上与getItem()相关联的getCount()方法。

答案 2 :(得分:1)

listview.setOnItemClickListener(new OnItemClickListener() {
                public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {

                 String name=(String)parent.getItemAtPosition(position);
                  Intent i = new Intent(getBaseContext(),anotheractivity.class);
                  i.putExtra("USERNAME", name);
                  startActivity(i); 
                }
            });

如果单击listview行,将获取相应位置的值并将其传递给intent并进一步传递给下一个activity。

神奇之处在于:

 String name=(String)parent.getItemAtPosition(position);