Android系统.将联系人显示为列表视图

前端之家收集整理的这篇文章主要介绍了Android系统.将联系人显示为列表视图前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想在列表视图中显示联系人,并在所有联系人上添加操作,例如点击特定联系人,它应显示电话号码,邮件ID和删除特定联系人…
import android.app.ListActivity;
import android.content.ContentResolver;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.Menu;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class CPDemo1 extends ListActivity {


    @SuppressWarnings("unchecked")
 public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
     String str[]=    {"datta","vivek","Nagesh sir","shiv"};
     String name; 

        ContentResolver cr = getContentResolver();
        Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI,null,null);
        int nameIdx = cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME);

        if (cursor.moveToFirst())


         do {

         int x = 0;

         name = cursor.getString(nameIdx);
         str[x]= name;
                 x++;
          ArrayAdapter arr = new ArrayAdapter(this,android.R.layout.simple_list_item_1,str);

          setListAdapter(arr);
 } while(cursor.moveToNext());

        }

解决方法

当前代码中的问题是为每个循环创建新的适配器.只需移动ArrayAdapter arr = new ArrayAdapter(this,str);
出来做循环.而另一个问题,你对UIThread工作太多(通过光标循环),所以如果您的联系人数量庞大,用户将看到黑屏或ANR.学习使用AsyncQueryHandler和CursorAdapter,它全部在我的链接和nikki的链接

为什么你不看看Android源代码中的默认联系人应用程序:
以下是我的定制联系人应用程序

https://github.com/android/platform_packages_apps_contacts

原文链接:https://www.f2er.com/android/310561.html

猜你在找的Android相关文章