是读取联系人,不是读取包名

图片说明

 package com.example.ch02_lianxi;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

public class MainActivity extends Activity implements OnClickListener{
    ListView contactListView;

    ArrayAdapter<Contact> adapter;
    List<Contact> contactslist = new ArrayList<Contact>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.activity_main);
        contactListView = (ListView) findViewById(R.id.contacts_list);
        adapter = new ArrayAdapter<Contact>(this, android.R.layout.simple_list_item_1, contactslist);
        readContacts();
        contactListView.setAdapter(adapter);

        Button button = (Button) findViewById(R.id.button_read);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        readContacts();
        Log.d("getContacts", "try_get");
    }

    public void readContacts() {
        Cursor cursor = null;
        try {
            cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null,
                    null);
            while (cursor.moveToNext()) {
                String name = cursor
                        .getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
                String phone = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
                contactslist.add(new Contact(name, phone));

            }
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            if (cursor != null) {
                cursor.close();
            }
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

加断点,看看contactslist的值对不对

Contact.java

 package com.example.ch02_lianxi;

public class Contact {

    private String name;
    private String phone;

    public Contact(String name,String phone)
    {
        this.name=name;
        this.phone=phone;
    }

    public String getname()
    {
        return name;
    }

    public String getphone()
    {
        return phone;
    }


}


ContactAdapter.java

 package com.example.ch02_lianxi;

import java.util.List;

import android.content.Context;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;

public class ContactAdapter extends ArrayAdapter<Contact> {
    private int resourceid;
    Contact contacts;

    public ContactAdapter(Context context, int textViewResourceId, List<Contact> Objects) {
        super(context, textViewResourceId, Objects);
        resourceid = textViewResourceId;
    }

    @Override
    public View getView(int position, View convertview, ViewGroup parent) {
        contacts = getItem(position);
        View view;
        ViewHolder viewholder;

        if (convertview == null) {
            view = LayoutInflater.from(getContext()).inflate(resourceid, null, true);
            viewholder = new ViewHolder();
            viewholder.Contact_item1 = (TextView) view.findViewById(R.id.contact_item1);
            viewholder.Contact_item2 = (TextView) view.findViewById(R.id.contact_item2);
            view.setTag(viewholder);
        } else {
            view = convertview;
            viewholder = (ViewHolder) view.getTag();
        }
        viewholder.Contact_item1.setVisibility(View.VISIBLE);
        viewholder.Contact_item2.setVisibility(View.VISIBLE);
        viewholder.Contact_item1.setText(contacts.getname());
        viewholder.Contact_item2.setText(contacts.getphone());

        Log.d("xx", contacts.getname() + contacts.getphone());

        return view;
    }

    class ViewHolder {
        TextView Contact_item1;
        TextView Contact_item2;
    }
}  

图片说明
图片说明
图片说明