1

我在使用 Sqlite 的 android 中的 itemclick 侦听器上遇到问题,我从 sqlite 数据库获取数据,我需要使用 onitemclick 侦听器将相同的数组列表传递给下一个活动。,但它不起作用。

 contactList.clear();


          String query = "SELECT  * FROM MessageTable  WHERE userID = '" + userid +"'"; 

          System.out.println("queryinsert="+query);

          Cursor c1 = sqlHandler.selectQuery(query);
          if (c1 != null && c1.getCount() != 0) {
           if (c1.moveToFirst()) {
           do {
             ContactListItems contactListItems = new ContactListItems();

             contactListItems.setSlno(c1.getString(c1.getColumnIndex("ID")));
                         contactListItems.setmessage(c1.getString(c1.getColumnIndex("message")));

             contactList.add(contactListItems);

            } while (c1.moveToNext());
           }
          }
          c1.close();
         }

这是 ArrayList<ContactListItems> contactList我存储sqlite数据的数组列表,我需要在每个项目单击时将数据传递给下一个,有人可以指导我吗。@谢谢

4

3 回答 3

0

覆盖 ListView http://www.mkyong.com/android/android-listview-example/的 onitem 点击监听器

您可以使用 bundle 也可以使用另一个具有 ArrayList contactList 变量的类,然后在列表视图中单击检索行的 id 并使用 bundle 传递该 id 就可以了

于 2013-05-21T06:14:33.010 回答
0

如果你想用你的游标填充你的实体类,你应该使用 for 语句,现在你只得到游标的第一行并重新实例化你的类

for(c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) 
{
}

并为您的列表侦听器使用:

YourList.setOnItemClickListener(new OnItemClickListener(){

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
    }});

编辑:这是您如何将数组列表放入意图的代码

intent.putStringArrayListExtra("Tets",YourArrayList);
于 2013-05-21T06:15:09.997 回答
0

尝试使用这个。您可以使用 Serializable 接口传递类的 ArrayList。检查下面的代码。

1) you have to implement Serializable interface in your ContactListItems class like 

public class ContactListItems implements Serializable {

}

2) Pass arraylist of ContactListItems via intent:

Intent intent = new Intent(YourCurrentActivity.this, DestinationActivity.class);
intent.putExtra("ContactListData", arrayListData); //  here arrayListData is the object of ArrayList<ContactListItems>
startActivity(intent);

3) get Intent of ArrayList containing ContactListItems class:

ArrayList<ContactListItems> contactListData;

Bundle extras = getIntent().getExtras();
   if (extras != null) {
    contactListData = (ArrayList<ContactListItems>) extras
                    .getSerializable("ContactListData");

   }

希望它会帮助你。

于 2013-05-21T10:58:27.040 回答