Autore Topic: problema listview  (Letto 356 volte)

Offline raimondo

  • Utente junior
  • **
  • Post: 130
  • Respect: 0
    • Mostra profilo
problema listview
« il: 09 Dicembre 2011, 14:42:24 CET »
0
Salve ragazzi ho un problema con listiview...allora ho una lista di contatti della rubrica e ho bisogno che quando clicco su un elemento della lista questo vada a visualizzare il contatto il rubrica... quindi le mie domande sono:
1)ora in questo modo posso accedere al contatto in rubrica mediante l'id:
Codice (Java): [Seleziona]
 Intent intent = new Intent(Intent.ACTION_VIEW);
 Uri uri = Uri.parse("content://contacts/people/"+"id");
 intent.setData(uri);
 startActivity(intent);
è fatto bene? o e sbagliato?
oltre all'id si puo usare un uri contente il nome del contatto?
2) a questo punto devo usare l'interfaccia OnItemClickListener() però adesso come faccio ad accedere al valore dell'id della classe Conctant all'interno della classe anonima[vedi codice sotto]?
la classe Contact è questa con i relativi get e set:
Codice (Java): [Seleziona]
public class Contact implements Comparable {
       
        private String name;
        private String id;
3) infine visto ke nella mia activity devo usare 3 listview invece dell'interfaccia anonima mi conviene usre una inner class che implementa tale interfaccia? e se si cosa gli dovrei passare

ringrazio tutti e ciao......

questo è il codice ke uso per visualizzare la list view:
Codice (Java): [Seleziona]
ArrayList<Contact> contactList = new ArrayList<Contact>();
CreaListView list = new CreaListView(getApplicationContext());

ListView v = (ListView) findViewById(R.id.personListView);
           v.setAdapter(list.listView(contactList));
            v.setOnItemClickListener(new OnItemClickListener() {
                @Override//serve a far fare qualcosa dopo il clic sull'oggetto
                        public void onItemClick(AdapterView<?> arg0, View view,int arg2, long arg3) {
                        Intent intent = new Intent(Intent.ACTION_VIEW);
                        Uri uri = Uri.parse("content://contacts/people/"+"id");
                                intent.setData(uri);
                                startActivity(intent);
                                }
                });

mentre questo è l'adapter:
Codice (Java): [Seleziona]
public class CreaListView {
       
        private Context context;
       
        public CreaListView(Context context){
               
                this.context = context;
        }
       
        public SimpleAdapter  listView(ArrayList<Contact> contactList){
               
                ArrayList<HashMap<String, Object>> data=new ArrayList<HashMap<String,Object>>();
       
                for(int i=0;i<contactList.size();i++){
            Contact contact =contactList.get(i);
            HashMap<String,Object> contactMap = new HashMap<String, Object>();
            contactMap.put("name", contact.getName());
            contactMap.put("volte", contact.getTimesContacted());
            data.add(contactMap);
        }
               
        String[] from={"name","volte"};
        int[] to={R.id.personName, R.id.time};
       
        SimpleAdapter adapter=new SimpleAdapter(context.getApplicationContext(),data,R.layout.contact_item,from,to);
               
                return adapter;
               
               
        }

}