Android 从我的应用程序的listview导出联系人
我只想将选中的联系人作为vcf文件复制到sd卡 有没有办法将选中的联系人从列表视图复制到SD卡?我已经制作了一个应用程序,可以从“联系人”菜单导出联系人,但我想从列表视图导出联系人,并且这些联系人是已选中的联系人。请提供帮助。我必须提交一个项目Android 从我的应用程序的listview导出联系人,android,Android,我只想将选中的联系人作为vcf文件复制到sd卡 有没有办法将选中的联系人从列表视图复制到SD卡?我已经制作了一个应用程序,可以从“联系人”菜单导出联系人,但我想从列表视图导出联系人,并且这些联系人是已选中的联系人。请提供帮助。我必须提交一个项目 itemsSelected = "Selected items: \n"; for (int i = 0; i < lstContacts.getCount(); i++) { view = lstContacts.getChildAt(i
itemsSelected = "Selected items: \n";
for (int i = 0; i < lstContacts.getCount(); i++) {
view = lstContacts.getChildAt(i);
check= (CheckBox)view.findViewById(R.id.cb2);
if (check.isChecked()) {
itemsSelected += lstContacts.getItemAtPosition(i) + "\n";
}
}
itemsSelected=“所选项目:\n”;
对于(int i=0;i
我终于找到了这个问题的答案。
在这里,lv是listview中的联系人列表。只需复制此代码,您就可以检查要复制到sd卡的联系人
long [] ids = lv.getCheckedItemIds();
for(long id : ids) {
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?", new String[] { id + "" }, null);
phones.moveToFirst();
for(int i =0;i<phones.getCount();i++)
{
String lookupKey = phones.getString(phones.getColumnIndex(ContactsContract.Contacts.LOOKUP_KEY));
Uri uri = Uri.withAppendedPath(ContactsContract.Contacts.CONTENT_VCARD_URI, lookupKey);
AssetFileDescriptor fd;
try
{
fd = this.getContentResolver().openAssetFileDescriptor(uri, "r");
fis = fd.createInputStream();
byte[] buf = new byte[(int) fd.getDeclaredLength()];
fis.read(buf);
String VCard = new String(buf);
//private File mPath = new File(Environment.getExternalStorageDirectory() + "//yourdir//");
sdCard =new File(Environment.getExternalStorageDirectory() + "//yourdir//");
directory = new File (sdCard.getAbsolutePath());
directory.mkdirs();
file = new File(directory, vfile);
// String path = Environment.getExternalStorageDirectory().toString() + File.separator + vfile;
FileOutputStream mFileOutputStream = new FileOutputStream(file,true);
mFileOutputStream.write(VCard.toString().getBytes());
phones.moveToNext();
//Log.d("Vcard", VCard);
}
catch (Exception e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}
}}
Toast.makeText(this, "contacts copied to " + vfile,
Toast.LENGTH_SHORT).show();
long[]ids=lv.getCheckedItemIds();
用于(长id:id){
游标phones=getContentResolver().query(ContactsContract.CommonDataTypes.Phone.CONTENT\u URI,null,
ContactsContract.CommonDataTypes.Phone.CONTACT_ID+“=?”,新字符串[]{ID+”},null);
moveToFirst();
对于(int i=0;iYes),您可以将它们保存在sd卡上的csv/txt文件中。我们如何添加它们?您可以详细说明吗?在这里您将找到您的答案到目前为止您做了什么?首先您尝试将其发布到这里,然后我们将帮助您。如果不尝试,您如何期待帮助?在上面的评论中,我给了您提示,谷歌仍然无法解决。我将帮助您