listview中的Onitemclick监听器

时间:2013-05-21 06:07:05

标签: android sqlite onitemclicklistener

我在使用Sqlite的android中的itemclick监听器遇到麻烦,我从sqlite数据库获取数据,我需要使用onitemclick监听器将相同的arraylist传递给下一个活动。但是它无效。

 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 ArrayList<ContactListItems> contactList我存储sqlite数据,我需要在每次点击时将数据传递到下一个,任何人都可以指导我。@ Thanks

3 个答案:

答案 0 :(得分:0)

overView onClick侦听器ListView http://www.mkyong.com/android/android-listview-example/

你可以使用bundle,你也可以使用另一个具有ArrayList contactList变量的类,并在listview中单击row的retrive id并使用bundle传递该id,然后你就去了

答案 1 :(得分:0)

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

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

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

YourList.setOnItemClickListener(new OnItemClickListener(){

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

编辑:这是您将arraylist放入意图的代码

intent.putStringArrayListExtra("Tets",YourArrayList);

答案 2 :(得分: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");

   }

希望它会对你有所帮助。