本帖最后由 xywhere 于 2013-7-15 09:25 编辑 主要功能就是联系人姓名和电话自动补全 比如:输入 135 则会提示所有135开头的电话号 比如:输入 王 下面会提示所有性王的人的电话 界面比较简单,功能也比较简单,核心功能实现依赖于系统提供的控件AutoCompleteTextView [Java] 纯文本查看 复制代码 public class MainActivity extends Activity implements OnClickListener { private AutoCompleteTextView act_text; private Button bt_call, bt_cancel; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 初始化控件 setView(); setListener(); // 获取联系人数组,配置适配器 String[] names = getContacts(); ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.item, names); act_text.setAdapter(adapter); } private void setView() { bt_call = (Button) findViewById(R.id.call); bt_cancel = (Button) findViewById(R.id.cancel); act_text = (AutoCompleteTextView) findViewById(R.id.name); } private void setListener() { bt_call.setOnClickListener(this); bt_cancel.setOnClickListener(this); } @Override public void onClick(View v) { switch(v.getId()) { case R.id.call: String contacts = act_text.getText().toString(); String number = getNumber(contacts); Intent intent=new Intent("android.intent.action.CALL",Uri.parse("tel:"+number.trim())); startActivity(intent); break; case R.id.cancel: act_text.setText(""); break; } } // 将联系人信息中的电话号提取出来 private String getNumber(String contacts) { StringBuilder sb = new StringBuilder(); int count = contacts.length(); for(int i=0; i<count; i++) { char n = contacts.charAt(i); if(n >= '0' && n <= '9') { sb.append(n); } } return sb.toString(); } // 将联系人信息存储到数组中 private String[] getContacts() { List<String> list = new ArrayList<String>(); String name = ""; ContentResolver contentResolver = getContentResolver(); // 获得所有的联系人 Cursor cursor = contentResolver.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); int idColumn = cursor.getColumnIndex(ContactsContract.Contacts._ID); int displayNameColumn = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME); while( cursor.moveToNext()) { // 获得联系人的ID String contactId = cursor.getString(idColumn); // 获得联系人姓名 String disPlayName = cursor.getString(displayNameColumn); name=disPlayName; // 查看该联系人有多少个电话号码。如果没有这返回值为0 int phoneCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (phoneCount > 0) { // 获得联系人的电话号码列表 Cursor phonesCursor = getContentResolver().query( ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+ " = " + contactId, null, null); while(phonesCursor.moveToNext()) { // 遍历所有的电话号码 String phoneNumber = phonesCursor.getString( phonesCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); list.add(phoneNumber+" "+name); list.add(name+" "+phoneNumber); } } } String[] str=new String[list.size()]; for(int i=0;i<list.size();i++) { str[i]=list.get(i); } return str; } } Andorid拨号另一例: android 拨号器 可用于小号互打 http://www.ruanyuan.net/forum.ph ... &tid=4966&fromuid=1 (出处: 软院网 RuanYuan.Net) |
[技术| 编程·课件·Linux] Android智能拨号简易实现
xywhere
· 发布于 2013-07-13 12:41
· 7383 次阅读
转载文章时务必注明原作者及原始链接,并注明「发表于 软院网 RuanYuan.Net 」,并不得对作品进行修改。
@jangwooning 看看 是你说那种吗 |
点评
xywhere 发表于 2013-7-13 12:52 要西,怪不得~ |
点评
vo_ 发表于 2013-7-13 23:14 你才不是呢 。。你是 offer 一把一把的。。 |
cfyrwang 发表于 2013-7-13 22:54 忠言逆耳 这才是真朋友 。。哈哈 |
cfyrwang 发表于 2013-7-13 22:53 来论坛 就是积极向上 |
cfyrwang 发表于 2013-7-13 22:54 我好可怜吧。。。。。。。。 |
xywhere 发表于 2013-7-13 12:42 凭啥你这个 要他么的10学分?还给挂到首页去了,版主太垄断了~是,就是这个意思!我加到我那里边了,抢走了哈! |
jangwooning 发表于 2013-7-15 09:06 不放首页 怎么能让你看见啊。。 |
xywhere 发表于 2013-7-13 12:42 布局文件也发一份上来,要不你就把你工程发我一份,要10学分你这个太敲诈了,我是不会下载的收到赶紧回复!万恶的版主! |
jangwooning 发表于 2013-7-15 09:19 这一个个的 都太尼玛穷了 已改成2学分了 |
点评
xywhere 发表于 2013-7-15 09:25 要不这样,我下载一次,然后你上我的帖子里边再给我加5分 怎么样? |
jangwooning 发表于 2013-7-15 09:09 其实那天申请版主你也可以努力一下的,可惜,人不在 |
点评
jangwooning 发表于 2013-7-15 09:09 什么叫瞎白话啊 。。。俺只是小版主 他们可是超级版主 更大附件哦 去说他们吧 。。 |
点评
xywhere 发表于 2013-7-15 10:31 别找借口了!!!!我恨透了你们这群人!!!! |
小马 发表于 2013-7-15 10:29 马哥 你又提我伤心的往事!下次遇见这种事情你打我电话 |
xywhere 发表于 2013-7-15 10:36 我为了上传一个小附件,一个劲的删东西,麻烦死了整死超级版主 |
xywhere 发表于 2013-7-15 11:02 哎呦喂~~~~不好说啥了哈。。。。。。 |
xywhere 发表于 2013-7-15 11:39 哈哈,撸主说的有道理呀……对java层的开发实在兴趣不大呀 |