2016-01-09 2 views
0

Я работаю над приложением, где пользователь сможет просматривать список с именами, а когда он нажимает на него, появляется другое действие с более подробной информацией о выбранном профиле. У меня есть ListView. Я создаю его, используя этот код:Android ListView с SQL id

listContacts = (ListView) findViewById(R.id.listContacts); 
     data = new ArrayList<HashMap<String, String>>(); 

     db = new DatabaseHandler(this); 
     List<Contact> contacts = db.getAllContacts(); 
     List<String> names = new ArrayList<>(); 
     List<String> sex = new ArrayList<>(); 
     List<String> age = new ArrayList<>(); 
     List<Integer> id = new ArrayList<>(); 
     List<String> sexnage = new ArrayList<>(); 

     for (Contact cn : contacts) { 

      names.add(cn.getName() + " " + cn.getSurname()); 

      sex.add(cn.getSex()); 
      age.add(cn.getAge()); 
      id.add(cn.getID()); 
      sexnage.add(cn.getSex() + " " + cn.getAge()); 
     } 

     titleArray = new String[names.size()]; 
     titleArray = names.toArray(titleArray); 

     subItemArray = new String[sexnage.size()]; 
     subItemArray = sexnage.toArray(subItemArray); 

     for(int i=0;i<titleArray.length;i++){ 
      HashMap<String,String> datum = new HashMap<String, String>(); 
      datum.put("Name", titleArray[i]); 
      datum.put("Sex and Age", subItemArray[i]); 
      data.add(datum); 
     } 


     SimpleAdapter subAdapter = new SimpleAdapter(this, data, android.R.layout.simple_list_item_2, 
       new String[] {"Name", "Sex and Age"}, new int[] 
       {android.R.id.text1, android.R.id.text2}); 
     listContacts.setAdapter(subAdapter); 

Как установить идентификатор каждого элемента в списке, так что она соответствует одной базы данных?

+0

создать пользовательский адаптер. составить список классов pojo с переменными «Name», «Sex» и т. д. и передать их адаптеру. – Tauqir

+0

Есть ли способ достичь этого без создания класса? –

ответ