2013-05-21 1 views
1

Я получаю неприятности на itemclick слушателя в android, используя Sqlite, я получаю данные из базы данных sqlite, и мне нужно передать один и тот же arraylist в следующую активность, используя onitemclick прослушиватель. Но его не работает.listview Onitemclick прослушиватель в Android

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 данных, мне нужно, чтобы передать данные к следующему по eachitem нажмите, может кто-нибудь наставит меня. @ Спасибо

+0

Используйте связки для обмена значениями. – Tarun

+0

, но проблема в том, что я не могу щелкнуть по списку –

ответ

0

попробуйте использовать этот. Вы можете передать ArrayList класса, используя интерфейс Serializable. проверьте ниже код.

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"); 

    } 

Надеюсь, это поможет вам.

+0

@thanks позвольте мне попробовать !! –

+0

Хорошо попробуй. позвольте мне немощно работать для вас или нет. – Maulik

+0

error !! 05-21 16: 39: 52.335: E/AndroidRuntime (276): java.lang.RuntimeException: Посылка: не удалось маршалировать значение [email protected] –

0

overide для ListView http://www.mkyong.com/android/android-listview-example/ onitem нажмите слушателю

вы можете использовать связку, а также вы можете использовать другой класс, которые имеют переменную ArrayList ContactList и в ListView нажмите retrive идентификатора строки и передать этот идентификатор, используя связку и там вы идете

0

Если Вы хотите, чтобы заполнить ваш класс сущностей с курсором, вы должны использовать для заявления, теперь ваши получает только первую строку вашего курсора и reinstantiate вашего класса

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); 
+0

ok.thanks, но проблема в том, что я не могу щелкнуть каждый listitem –

+0

, если вы поместите этот прослушиватель после установки вашего адаптера списка, который нужно щелкнуть shuold, иначе поместите соответствующий код (listview макет или определение списка), может быть, кто-то может помочь –

+0

ok..now его работы, но как я могу передать ArrayList contactList для следующего действия –

 Смежные вопросы

  • Нет связанных вопросов^_^