Android 向ListView添加联系人
我正在开发一个Android应用程序。我正在逐个获取所有联系人,但在将所有联系人添加到Listview时遇到问题Android 向ListView添加联系人,android,listview,contacts,android-listview,Android,Listview,Contacts,Android Listview,我正在开发一个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.conte
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);
}
}
package com.jigar.Contact;
导入android.R.integer;
导入android.app.Activity;
导入android.app.ListActivity;
导入android.os.Bundle;
导入android.app.Activity;
导入android.content.ContentResolver;
导入android.database.Cursor;
导入android.os.Bundle;
导入android.provider.contacts合同;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.Toast;
公共类ContactStatus扩展ListActivity
{
/**在首次创建活动时调用*/
私有字符串联系人ID;
私有字符串名称;
私人电话;
私有字符串电话号码;
私有字符串[]dat=新字符串[10];
私有整数计数=0;
私有ListView lv;
@凌驾
创建时的公共void(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);
while(cur.moveToNext())
{
contactid=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.\u ID));
name=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_name));
dat[计数]=名称;
hasphone=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_电话号码));
Toast.makeText(this,contactid,1000).show();
Toast.makeText(this,name,1000).show();
//dat[计数]=名称;
计数++;
if(hasphone.equals(“1”))
{
hasphone=“true”;
}
if(Boolean.parseBoolean(hasphone))
{
游标cphon=getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,ContactsContract.CommonDataTypes.Phone.CONTACT\u ID+“=”+contactid,null,null);
while(cphon.moveToNext())
{
phonenumber=cphon.getString(cphon.getColumnIndex(ContactsContract.CommonDataTypes.Phone.NUMBER));
Toast.makeText(this,phonenumber,1000).show();
}
}
//lv.setAdapter(新的ArrayAdapter(ContactStatus.this,android.R.layout.simple_list_item_1,dat));
}
//ArrayAdapter arr=新的ArrayAdapter(这是android.R.layout.simple\u list\u item\u 1,dat);
//setListAdapter(arr);
}
}
如果对问题没有更好的描述,就很难提供帮助
但是,您似乎正在onCreate中加载所有联系人数据,而不是后台线程,因此应用程序可能会因无响应而被终止
如果这是问题所在(即使不是),您应该将代码移动到后台线程中以加载联系人;这是最简单的API
如果您有其他问题,请提供:
- 描述你期望发生或未发生的事情
- 对数输出