短信-选择-联系人
来源:互联网 发布:python 数据可视化js 编辑:程序博客网 时间:2024/05/18 01:55
1.联系人存储业务bean
ContactInfo.java
2.ContactInfoSer.java
读取系统联系人数据库contacts.db 查找需要表字段 raw_contacts,data;
返回List<ContactInfo> contactInfos = new ArrayList<ContactInfo>(); 找到的联系人数据集合
3.ListContact.java
1.接收返回的联系人list集合。
2.设置adapter 讲数据显示在 list item
lv_select_contact.setAdapter(new ContactAdapter());
private class ContactAdapter extends BaseAdapter{}
3.设置list item 监听完成单击时返回单击的item数据
lv_select_contact.setOnItemClickListener(new OnItemClickListener(){});
MainActivity.java-获取返回的值
. Intent intent = new Intent(this,ListContact.class);
startActivityForResult(intent, 0);//获取新activity返回的值
重载 onActivityResult() 当创建的activity关闭时,调用此方法;并把数据 Intent data 传递給调用它的activity
package com.example.SmsSelectContact;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.Button;import android.widget.EditText;public class MainActivity extends Activity {private Button selectBut,sendsmsBut;private EditText contactText,smsText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.layout); selectBut = (Button) findViewById(R.id.selectBut); sendsmsBut =(Button) findViewById(R.id.sendBut); smsText = (EditText) findViewById(R.id.smsText); contactText = (EditText) findViewById(R.id.contactText); } //选择联系人按钮 public void select_but(View v){ //启动目标activity Intent intent = new Intent(this,ListContact.class); //开启新的activity //startActivity(intent); startActivityForResult(intent, 0);//获取新activity返回的值 } //发送sms按钮 public void sendSMS(View v){ } //当创建的activity关闭时,调用此方法;并把数据 Intent data 传递給调用它的activity //@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {//接收创建的activity 返回的值if(data != null){String number = data.getStringExtra("number");contactText.setText(number);}super.onActivityResult(requestCode, resultCode, data);} }
package com.example.SmsSelectContact;import java.util.List;import com.example.SmsSelectContact.domain.ContactInfo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;public class ListContact extends Activity {private ListView lv_select_contact;List<ContactInfo> contactInfos;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_list_contact);lv_select_contact = (ListView) findViewById(R.id.lv_select_contact);//接收返回的 返回所有联系人信息 集合contactInfos = ContactInfoSer.getContactInfos(this);//2.adapter 适配器lv_select_contact.setAdapter(new ContactAdapter());//3.设置item条目单击监听lv_select_contact.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {ContactInfo contactInfo = contactInfos.get(position);String number = contactInfo.getNumber(); //获取点击item 号码//把号码传递给调用它的activity//通过第二个 intent data参数传递出去Intent data = new Intent();data.putExtra("number", number);setResult(0,data);//点击item 条目时就关闭掉当前activity,然后把数据传给调用者 执行OnActivityResult()方法finish();}});}private class ContactAdapter extends BaseAdapter{@Overridepublic int getCount() {return contactInfos.size();}@Overridepublic Object getItem(int position) {return null;}@Overridepublic long getItemId(int position) {return 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ContactInfo contactInfo = contactInfos.get(position);View v = View.inflate(getApplicationContext(), R.layout.contact_item, null);TextView tv_name = (TextView) v.findViewById(R.id.tv_item_name);TextView tv_number = (TextView) v.findViewById(R.id.tv_item_number);tv_name.setText(contactInfo.getName());tv_number.setText(contactInfo.getNumber());return v;}}}
package com.example.SmsSelectContact;import java.util.ArrayList;import java.util.List;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.net.Uri;import com.example.SmsSelectContact.domain.ContactInfo;public class ContactInfoSer {/** * 读取系统联系人数据库 * 返回所有联系人信息 * @return List<ContactInfo> */public static List<ContactInfo> getContactInfos(Context context){//创建一个联系人集合List<ContactInfo> contactInfos = new ArrayList<ContactInfo>();// 1.查询raw_contact表获取联系人IDContentResolver resolver = context.getContentResolver();// 2.获取raw_contact表对应的uriUri contactUri = Uri.parse("content://com.android.contacts/raw_contacts");Uri dataUri = Uri.parse("content://com.android.contacts/data");Cursor contactCursor = resolver.query(contactUri, null, null, null,null);while (contactCursor.moveToNext()) {//联系人数据类beanContactInfo contactInfo = new ContactInfo();// 获取联系人id:contact_idString id = contactCursor.getString(contactCursor.getColumnIndex("contact_id"));System.out.println("联系人:" + id);if (id != null) {// 通过id获取data表对应信息Cursor dataCursor = resolver.query(dataUri, null,"raw_contact_id=?", new String[] { id }, null);while (dataCursor.moveToNext()) {// 查询 data 表对应的 view_data视图String mimetype = dataCursor.getString(dataCursor.getColumnIndex("mimetype"));String data1 = dataCursor.getString(dataCursor.getColumnIndex("data1"));System.out.println("data: = " + data1);System.out.println("mimetype_id = " + mimetype);//添加数据if("vnd.android.cursor.item/name".equals(mimetype)){contactInfo.setName(data1);}if("vnd.android.cursor.item/phone_v2".equals(mimetype)){contactInfo.setNumber(data1);}}contactInfos.add(contactInfo);dataCursor.close();System.out.println("--------------");}}contactCursor.close();return contactInfos;}}
package com.example.SmsSelectContact.domain;/** * 联系人业务bean * @author Administrator * */public class ContactInfo {private String name;private String number;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}}
http://pan.baidu.com/s/1i3Kdt0T 代码
0 0
- 短信-选择-联系人
- [ios] 发短信,从电话薄里选择联系人【转】
- 选择联系人并发送短信(ACTION_PICK与Uri对象)
- ios 选择联系人 发短信 通讯录开发 addressUI
- Android发送短信(短信发送以及群发和从电话本选择联系人)---短信管家2
- 解决:People下面选择分享可见联系人,选择多个联系人后通过短信分享,短信中只显示一个联系人
- Android-节日短信送祝福(UI篇:3-选择联系人、发送短信、显示历史记录)
- 短信联系人URI
- 编辑短信联系人
- 短信联系人操作
- android短信选择收件人时,号码搜索联系人修改成任意位置开始中间匹配
- android 发短信 调到联系人
- 权限大全、联系人、短信、邮件
- Loader之AsyncTaskLoader(联系人短信)
- Android得到短信联系人姓名
- 获取手机号码联系人,短信信息
- Android读取短信和联系人
- 短信验证码和联系人
- fedora18-64 bit安装STM32 GCC编译环境(1)
- hdu2871 Memory Control 线段树区间合并+STL删除插入
- 乐惠通手机十元包月全国任打--制度详解
- coco2d-x单例的实现
- php字符串操作
- 短信-选择-联系人
- Qt 常用类 (10)—— QDialog
- acdream 1200 Jump! Jump! Jump! 概率dp+高斯消元
- 用数组实现链表
- Qt 常用类 (11)—— QLabel
- 信孚观察 9.9 哈佛教育的魅力
- USACO Barn Repair
- 解决跨域请求问题
- VoIP全面详解: