Android读取选择联系人的模版代码实现
发布时间:2020-12-14 23:28:47 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 1、创建SelectContactActivity类,在AndroidManifest.xml添加类 import java.util.ArrayList; import java.util.HashMap; import java.util.List; imp
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 1、创建SelectContactActivity类,在AndroidManifest.xml添加类import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ContentResolver; import android.content.Intent; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import android.widget.SimpleAdapter; public class SelectContactActivity extends Activity { private ListView lv_select_contact; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_select_contact); lv_select_contact = (ListView) findViewById(R.id.lv_select_contact); final List<Map<String,String>> data = getContactInfo(); lv_select_contact.setAdapter(new SimpleAdapter(this,data,R.layout.contact_item_view,new String[]{"name","phone"},new int[]{R.id.tv_name,R.id.tv_phone})); lv_select_contact.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent,View view,int position,long id) { String phone = data.get(position).get("phone"); Intent data = new Intent(); data.putExtra("phone",phone); setResult(0,data); //关闭掉当前的页面 finish(); } }); } /** * 读取手机里面的联系人 * @return */ private List<Map<String,String>> getContactInfo() { List<Map<String,String>> list = new ArrayList<Map<String,String>>(); //得到一个内容解析器 ContentResolver resolver = getContentResolver(); //raw_contact uri Uri uri = Uri.parse("content://com.android.contacts/raw_contacts"); Uri uriData = Uri.parse("content://com.android.contacts/data"); Cursor cursor = resolver.query(uri,new String[]{"contact_id"},null,null); while(cursor.moveToNext()){ String contact_id = cursor.getString(0); if(contact_id != null){ //具体的某一个联系人 Map<String,String> map =new HashMap<String,String>(); Cursor dataCursor = resolver.query(uriData,new String[]{"data1","mimetype"},"contact_id=?",new String[]{contact_id},null); while(dataCursor.moveToNext()){ String data1 = dataCursor.getString(0); String mimetype = dataCursor.getString(1); System.out.println("data1=="+data1+"mimetype=="+mimetype); if("vnd.android.cursor.item/name".equals(mimetype)){ //联系人的姓名 map.put("name",data1); }else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){ //联系人的电话号码 map.put("phone",data1); } } list.add(map); dataCursor.close(); } } cursor.close(); return list; } } 2、读取联系人需要获得权限3、前面java需要引入相关layout,模版如下注意姓名号码id:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:background="#8866ff00" android:gravity="center" android:textColor="#000000" android:textSize="20sp" android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="55dip" android:text="选择联系人"/> <ListView android:verticalSpacing="10dip" android:layout_marginTop="15dip" android:numColumns="3" android:id="@+id/lv_select_contact" android:layout_width="match_parent" android:layout_height="match_parent" /> </LinearLayout> 4、实现选择联系人的点击事件* 选择联系人的点击事件 */ public void selectContact(View view){ Intent intent = new Intent(this,SelectContactActivity.class); startActivityForResult(intent,0); } 5、然后将点击的联系人投射到号码输入框@Override protected void onActivityResult(int requestCode,int resultCode,Intent data) { // TODO Auto-generated method stub super.onActivityResult(requestCode,resultCode,data); if(data == null){ return ; } //et_setup3_phone是输入框的id String phone = data.getStringExtra("phone").replace("-",""); et_setup3_phone.setText(phone); } 6、最后说下注意点以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |