自动匹配的联系人多选框

http://cmd100.com/bbs/forum.php?mod=viewthread&tid=2254&extra=page%3D1

 

 

/*** 

* AndroidManifest.xml 

<uses-permission android:name=/"android.permission.READ_CONTACTS/"/> 

 

 

/*** 

* AutoMultipleContacts.java 

 

import android.app.Activity; 

import android.content.ContentResolver; 

import android.content.Context; 

import android.database.Cursor; 

import android.os.Bundle; 

import android.provider.Contacts; 

import android.view.LayoutInflater; 

import android.view.View; 

import android.view.ViewGroup; 

import android.widget.CursorAdapter; 

import android.widget.Filterable; 

import android.widget.MultiAutoCompleteTextView; 

import android.widget.TextView; 

 

public class AutoMultipleContacts extends Activity { 

 

@Override 

public void onCreate(Bundle savedInstanceState) { 

super.onCreate(savedInstanceState); 

setContentView(R.layout.multipleselect); 

 

Cursor peopleCursor = getContentResolver().query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION, null, null, Contacts.People.DEFAULT_SORT_ORDER); 

ContactListAdapter contactadapter = new ContactListAdapter(this,peopleCursor); 

 

MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.contacts); 

textView.setAdapter(contactadapter); 

textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer()); 

 

 

public static class ContactListAdapter extends CursorAdapter implements Filterable { 

public ContactListAdapter(Context context, Cursor c) { 

super(context, c); 

mContent = context.getContentResolver(); 

 

@Override 

public View newView(Context context, Cursor cursor, ViewGroup parent) { 

final LayoutInflater inflater = LayoutInflater.from(context); 

final TextView view = (TextView) inflater.inflate( 

android.R.layout.simple_dropdown_item_1line, parent, false); 

view.setText(cursor.getString(5)); 

return view; 

 

@Override 

public void bindView(View view, Context context, Cursor cursor) { 

((TextView) view).setText(cursor.getString(5)); 

 

@Override 

public String convertToString(Cursor cursor) { 

return cursor.getString(5); 

 

@Override 

public Cursor runQueryOnBackgroundThread(CharSequence constraint) { 

if (getFilterQueryProvider() != null) { 

return getFilterQueryProvider().runQuery(constraint); 

 

StringBuilder buffer = null; 

String[] args = null; 

if (constraint != null) { 

buffer = new StringBuilder(); 

buffer.append(/"UPPER(/"); 

buffer.append(Contacts.ContactMethods.NAME); 

buffer.append(/") GLOB ?/"); 

args = new String[] { constraint.toString().toUpperCase() + /"*/" }; 

 

return mContent.query(Contacts.People.CONTENT_URI, PEOPLE_PROJECTION, 

buffer == null ? null : buffer.toString(), args, 

Contacts.People.DEFAULT_SORT_ORDER); 

 

private ContentResolver mContent; 

 

private static final String[] PEOPLE_PROJECTION = new String[] { 

Contacts.People._ID, 

Contacts.People.PRIMARY_PHONE_ID, 

Contacts.People.TYPE, 

Contacts.People.NUMBER, 

Contacts.People.LABEL, 

Contacts.People.NAME, 

}; 

 

 

 

 

 

 

/*** 

* res/layout/multipleselect.xml 

 

<?xml version=/"1.0/" encoding=/"utf-8/"?> 

<LinearLayout xmlns:android=/"http://schemas.android.com/apk/res/android/" 

android:orientation=/"vertical/" 

android:layout_width=/"fill_parent/" 

android:layout_height=/"fill_parent/" 

 

<LinearLayout 

android:layout_width=/"fill_parent/" 

android:layout_height=/"wrap_content/" 

android:gravity=/"center_vertical/"> 

 

<MultiAutoCompleteTextView 

android:id=/"@+id/contacts/" 

android:textSize=/"18sp/" 

android:layout_margin=/"8px/" 

android:layout_width=/"0px/" 

android:layout_height=/"wrap_content/" 

android:layout_weight=/"1/" /> 

 

</LinearLayout> 

</LinearLayout> 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值