Problem on Show ContactList

Put your problem here if it does not fit any of the other categories.

Problem on Show ContactList

Postby soumen4code » Wed Apr 20, 2011 8:39 pm

I have a application where I have to show contact list from my android phone contact list in this order first name second number. I am getting the name but the number is null. I am posting my full code below . please send me the correct code. For showing The name and phone number properly.

Activity class:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. package com.sdn;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5.  
  6. import android.app.AlertDialog;
  7. import android.app.ListActivity;
  8. import android.content.Context;
  9. import android.content.DialogInterface;
  10. import android.content.Intent;
  11. import android.database.Cursor;
  12. import android.os.Bundle;
  13. import android.provider.ContactsContract;
  14. import android.provider.Contacts.People;
  15. import android.provider.ContactsContract.CommonDataKinds.Phone;
  16. import android.view.View;
  17. import android.widget.AdapterView;
  18. import android.widget.Button;
  19. import android.widget.ListAdapter;
  20. import android.widget.ListView;
  21. import android.widget.SimpleCursorAdapter;
  22. import android.widget.Toast;
  23. import android.widget.AdapterView.OnItemClickListener;
  24.  
  25. public class Contactlog extends ListActivity {
  26.        
  27.         Context context=this;
  28.         public static int isVisited = 0;
  29.         static final ArrayList<HashMap<String,String>> list =
  30.         new ArrayList<HashMap<String,String>>();
  31.  
  32.         /** Called when the activity is first created. */
  33.                 @Override
  34.                 public void onCreate(Bundle savedInstanceState) {
  35.                         super.onCreate(savedInstanceState);
  36.                         setContentView(R.layout.temp);
  37.  
  38.                         final ListAdapter adapter = createAdapter();
  39.                         setListAdapter(adapter);
  40.                        
  41.                           ListView lv = getListView();
  42.                           lv.setTextFilterEnabled(true);
  43.  
  44.                           lv.setOnItemClickListener(new OnItemClickListener() {
  45.  
  46.                                 @Override
  47.                                 public void onItemClick(AdapterView<?> arg0, View view,
  48.                                                 int position, long id) {
  49.                                         Cursor cursor = (Cursor) adapter.getItem(position);
  50.                                         int numberColumn = cursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
  51.                                         String callerPhoneNumber = cursor.getString(numberColumn);
  52.                                         Toast.makeText(getApplicationContext(), "The Phone Number is  : "+callerPhoneNumber, Toast.LENGTH_SHORT).show();
  53.                                        
  54.                                 }});
  55.                        
  56.                 }
  57.         /**
  58.         * Creates and returns a list adapter for the current list activity
  59.         * @return
  60.         */
  61.                 protected ListAdapter createAdapter()
  62.                 {
  63.                          Cursor c = getContentResolver().query(
  64.                                          People.CONTENT_URI,
  65.                              null,
  66.                              null,
  67.                              null,
  68.                              People.NAME + " ASC");
  69.                         startManagingCursor(c);
  70.                        
  71.                         String name;
  72.                         String phonenumber;
  73.                         String contactID;
  74.  
  75.                          int nameColumn = c.getColumnIndex(People.NAME);
  76.              int phoneColumn = c.getColumnIndex(People.NUMBER);
  77.  
  78.                        
  79.                        
  80.                         ArrayList<ArraylistClassSupport> dataList = new ArrayList<ArraylistClassSupport>();
  81.                        
  82.                         int i=0;
  83.                         if(c.moveToFirst()){
  84.                                 do{                            
  85.                                         name = c.getString(nameColumn);
  86.                
  87.                                         contactID= c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
  88.                                         Cursor phoneNumbers = getContentResolver().query(Phone.CONTENT_URI, null, Phone.CONTACT_ID + " = " + contactID, null, null);
  89.                                         while (phoneNumbers.moveToNext())
  90.                                 {
  91.                                                 phonenumber = phoneNumbers.getString(phoneNumbers.getColumnIndex(Phone.NUMBER));
  92.                                        
  93.                                         if (phonenumber == null || phonenumber.equals(""))
  94.                                                 continue;
  95.                                         else
  96.                                         {
  97.  
  98.                                                 ArraylistClassSupport al = new ArraylistClassSupport(phonenumber,name);
  99.                                                
  100.                                                 dataList.add(al);      
  101.                                         }
  102.            
  103.                                 }
  104.                                 phoneNumbers.close();
  105.                                 c.close();
  106.                
  107.                                        
  108.                                 }while(c.moveToNext());
  109.                         }
  110.                       for (int j = 0; j < dataList.size(); j++)
  111.                       {  
  112.                         ArraylistClassSupport templist = dataList.get(j);
  113.                         HashMap<String,String> temp = new HashMap<String,String>();
  114.                        
  115.                         String Number = templist.getNumber();
  116.                         String Name = templist.getName();
  117.                         temp.put("Name",Name);
  118.                         temp.put("Number",Number);
  119.                         list.add(temp);
  120.                        
  121.                       }
  122.                 isVisited=1;
  123.                
  124.                  // the desired columns to be bound
  125.         String[] columns = new String[] {"Name","Number"};
  126.         // the XML defined views which the data will be bound to
  127.         int[] to = new int[] { R.id.new_name,R.id.new_number};
  128.                        
  129.         ListAdapter adapter1 = new SimpleCursorAdapter(this, R.layout.row, c, columns, to);
  130.                        
  131.                         return adapter1;
  132.                 }
  133.         }
  134.  
Parsed in 0.002 seconds, using GeSHi 1.0.8.4


Helper java code:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. package com.sdn.list;
  2.  
  3. public class ArraylistClassSupport {
  4.        
  5.         private String number = "";
  6.         private String name = "";
  7.         public ArraylistClassSupport(String num, String fname) {
  8.                 number = num;
  9.                 name = fname;
  10.                                
  11. }
  12.         public String getNumber()
  13.         {
  14.                 return number;
  15.         }
  16.  
  17.         public String getName()
  18.         {
  19.                 return name;
  20.         }
  21.        
  22. }
  23.  
Parsed in 0.000 seconds, using GeSHi 1.0.8.4


XML Files:
------------

main.xml:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.    android:orientation="vertical"
  4.    android:layout_width="fill_parent"
  5.    android:layout_height="fill_parent"
  6.    >
  7. <TextView  
  8.    android:layout_width="fill_parent"
  9.    android:layout_height="wrap_content"
  10.    android:text="@string/hello"
  11.    />
  12. </LinearLayout>
  13.  
Parsed in 0.002 seconds, using GeSHi 1.0.8.4


row.xml:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.         android:orientation="vertical"
  4.        android:layout_width="fill_parent"
  5.        android:layout_height="wrap_content" >
  6.         <TextView   android:id="@+id/new_name"
  7.                                         android:layout_width="wrap_content"
  8.                                         android:layout_height="wrap_content"
  9.                                         android:text="TextView"
  10.                                         android:textStyle="bold"
  11.                                         android:textColor="#ffff1616"
  12.                                         android:layout_alignParentTop="true"
  13.                                         android:layout_toRightOf="@+id/widget41"
  14.                                         android:textSize="20sp" android:paddingLeft="5px">
  15.                 </TextView>
  16.         <TextView
  17.                         android:id="@+id/new_number"
  18.                         android:layout_width="wrap_content"
  19.                         android:layout_height="wrap_content"
  20.                         android:text="TextView"
  21.                         android:layout_alignBottom="@+id/new_name"
  22.                         android:layout_toRightOf="@+id/new_name" android:textSize="16sp" android:paddingLeft="5px">
  23.                 </TextView>
  24.                
  25. </LinearLayout>
  26.  
  27.  
Parsed in 0.004 seconds, using GeSHi 1.0.8.4


temp.xml:
Syntax: [ Download ] [ Hide ]
Using xml Syntax Highlighting
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.        android:orientation="vertical"
  4.         android:layout_width="fill_parent"
  5.         android:layout_height="wrap_content" >
  6.         <ListView
  7.                 android:id="@android:id/android:list"
  8.                 android:layout_width="fill_parent"
  9.                 android:layout_height="wrap_content" />
  10. </RelativeLayout>
  11.  
  12.  
  13.  
Parsed in 0.002 seconds, using GeSHi 1.0.8.4
soumen4code
Developer
Developer
 
Posts: 46
Joined: Wed Mar 16, 2011 4:21 pm

Top

Return to Other Coding-Problems

Who is online

Users browsing this forum: Google [Bot] and 13 guests