我正在开发一个Android应用程序。我逐个获取所有联系人,但我无法将所有联系人添加到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 :(得分:0)
如果没有更好的问题描述,很难提供帮助。
然而,您似乎正在加载onCreate而不是后台线程中的所有联系人数据,因此该应用可能会因为没有响应而被杀死。
如果这是问题(即使不是),您应该移动代码以将联系人加载到后台线程中; AsyncTask是最简单的API。
如果您有其他问题,请提供: