2011-04-25 3 views
0

Je développe une application Android. Je suis tous les contacts aller chercher un par un, mais je ne parviens pas à ajouter tous les contacts à la ListviewAjouter des contacts à ListView

package com.jigar.Contact; 

import android.R.integer; 
import android.app.Activity; 
import android.app.ListActivity; 
import android.os.Bundle; 


import android.app.Activity; 
import android.content.ContentResolver; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 
import android.widget.Toast; 

public class ContactStatus extends ListActivity 
{ 
    /** Called when the activity is first created. */ 
    private String contactid; 
    private String name; 
    private String hasphone; 
    private String phonenumber; 
    private String[] dat=new String[10]; 
    private int count=0; 
    private ListView lv; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     ContentResolver cr = getContentResolver(); 
     //lv=(ListView)findViewById(R.id.listv); 
     Cursor cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null,null, null,null); 

     while(cur.moveToNext()) 
     { 
      contactid=cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)); 
      name=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)); 
      dat[count]=name; 
      hasphone=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 
      Toast.makeText(this, contactid, 1000).show(); 
      Toast.makeText(this, name, 1000).show(); 
      // dat[count]=name; 
      count++; 
      if(hasphone.equals("1")) 
      { 
       hasphone="true"; 
      } 

      if(Boolean.parseBoolean(hasphone)) 
      { 

       Cursor cphon=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+contactid, null, null); 
       while(cphon.moveToNext()) 
       { 
        phonenumber=cphon.getString(cphon.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
        Toast.makeText(this, phonenumber, 1000).show(); 
       } 

      } 

      //lv.setAdapter(new ArrayAdapter<String>(ContactStatus.this,android.R.layout.simple_list_item_1, dat)); 
     } 
     // ArrayAdapter arr=new ArrayAdapter(this,android.R.layout.simple_list_item_1, dat); 
     //setListAdapter(arr); 
    } 
} 
+0

Quel est le problème spécifique que vous avez avec le code affiché? Quelles sont les choses spécifiques que vous voulez qu'il fasse qu'il ne fait pas? –

+0

Référer http://vikasdp.wordpress.com/2011/02/06/custom-android-listview-to-read-phone-contacts/ espérons que cela vous aide .. –

Répondre

0

Sans une meilleure description du problème, il est difficile d'aider. Cependant, il semble que vous chargiez toutes les données de contact de l'onCreate plutôt que d'un thread d'arrière-plan. L'application est donc probablement bloquée comme ne répondant pas.

Si c'est le problème (et même s'il ne l'est pas), vous devez déplacer le code pour charger les contacts dans un thread d'arrière-plan; AsyncTask est l'API la plus simple pour cela.

Si vous avez une autre question, s'il vous plaît fournir:

  • Une description de ce qui est ou ne se produit pas que vous attendez.
  • sortie LogCat
+0

oui monsieur je vais chercher tous les contacts dans ma demande je peux aller chercher un par un, mais quand j'essaie d'ajouter tous ceux dans listview im obtenir des problèmes si plzz fournir du code pour mes problèmes sooo plzzz monsieur – Jigar

+0

Quel code utilisez-vous pour remplir la liste? Je peux voir commenté le code en ajoutant un adaptateur, mais il n'y a pas de code pour y ajouter des données. –

Questions connexes