1 package com.lixu.letterlistview; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import org.apache.http.NameValuePair; 6 impor ...
1 package com.lixu.letterlistview; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import org.apache.http.NameValuePair; 6 import org.apache.http.message.BasicNameValuePair; 7 import com.lixu.letterlistview.letter.LetterBaseListAdapter; 8 import com.lixu.letterlistview.letter.LetterListView; 9 import com.lixu.lianxirenlist.R; 10 import android.app.Activity; 11 import android.content.ContentResolver; 12 import android.database.Cursor; 13 import android.graphics.Color; 14 import android.net.Uri; 15 import android.os.Bundle; 16 import android.view.Gravity; 17 import android.view.View; 18 import android.view.ViewGroup; 19 import android.widget.TextView; 20 21 public class MainActivity extends Activity { 22 private ArrayList<String> dataArray; 23 24 @Override 25 protected void onCreate(Bundle savedInstanceState) { 26 super.onCreate(savedInstanceState); 27 setContentView(R.layout.activity_main); 28 // 通过获取手机通讯录的姓名 29 dataArray = new ArrayList<String>(); 30 31 Uri uri = Uri.parse("content://com.android.contacts/contacts"); 32 ContentResolver resolver = this.getContentResolver(); 33 // 给query传递一个SORT_KEY_PRIMARY,让ContentResolver将获得的数据按照联系人名字首字母排序 34 Cursor cursor = resolver.query(uri, null, null, null, 35 android.provider.ContactsContract.Contacts.SORT_KEY_PRIMARY); 36 while (cursor.moveToNext()) 37 38 { 39 // 联系人的id 40 String id = cursor.getString(cursor.getColumnIndex(android.provider.ContactsContract.Contacts._ID)); 41 // 将联系人按姓名首字母分组 42 String sort_key_primary = cursor 43 .getString(cursor.getColumnIndex(android.provider.ContactsContract.Contacts.SORT_KEY_PRIMARY)); 44 // 获取联系人的名字 45 String name = cursor 46 .getString(cursor.getColumnIndex(android.provider.ContactsContract.Contacts.DISPLAY_NAME)); 47 dataArray.add(name); 48 } 49 50 LetterListView letterListView = (LetterListView) findViewById(R.id.letterListView); 51 letterListView.setAdapter(new TestAdapter()); 52 53 } 54 55 /** 56 * 这里 使用一个简单的 NameValuePair 对象,做为测试 57 * 58 * @Title: 59 * @Description: 60 * @Author:Justlcw 61 * @Since:2014-5-13 62 * @Version: 63 */ 64 class TestAdapter extends LetterBaseListAdapter<NameValuePair> { 65 /** 字母对应的key,因为字母是要插入到列表中的,为了区别,所有字母的item都使用同一的key. **/ 66 private static final String LETTER_KEY = "letter"; 67 68 public TestAdapter() { 69 super(); 70 71 List<NameValuePair> dataList = new ArrayList<NameValuePair>(); 72 for (int i = 0; i < dataArray.size(); i++) { 73 NameValuePair pair = new BasicNameValuePair(String.valueOf(i), dataArray.get(i)); 74 dataList.add(pair); 75 } 76 setContainerList(dataList); 77 } 78 79 @Override 80 public Object getItem(int position) { 81 return list.get(position); 82 } 83 84 @Override 85 public long getItemId(int position) { 86 return position; 87 } 88 89 @Override 90 public String getItemString(NameValuePair t) { 91 return t.getValue(); 92 } 93 94 @Override 95 public NameValuePair create(char letter) { 96 return new BasicNameValuePair(LETTER_KEY, String.valueOf(letter)); 97 } 98 99 @Override100 public boolean isLetter(NameValuePair t) {101 // 判断是不是字母行,通过key比较,这里是NameValuePair对象,其他对象,就由你自己决定怎么判断了.102 return t.getName().equals(LETTER_KEY);103 }104 105 @Override106 public View getLetterView(int position, View convertView, ViewGroup parent) {107 // 这里是字母的item界面设置.108 if (convertView == null) {109 convertView = new TextView(MainActivity.this);110 ((TextView) convertView).setGravity(Gravity.CENTER_VERTICAL);111 convertView.setBackgroundColor(getResources().getColor(android.R.color.white));112 }113 ((TextView) convertView).setText(list.get(position).getValue());114 ((TextView) convertView).setBackgroundColor(Color.GREEN);115 ((TextView) convertView).setTextSize(25);116 return convertView;117 }118 119 @Override120 public View getContainerView(int position, View convertView, ViewGroup parent) {121 // 这里是其他正常数据的item界面设置.122 if (convertView == null) {123 convertView = new TextView(MainActivity.this);124 ((TextView) convertView).setGravity(Gravity.CENTER_VERTICAL);125 }126 ((TextView) convertView).setText(list.get(position).getValue());127 ((TextView) convertView).setBackgroundColor(Color.YELLOW);128 ((TextView) convertView).setTextSize(20);129 130 return convertView;131 }132 }133 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:联系人的侧边字母索引ListView 将手机通讯录姓名通过首字母排序。
关键词:ie
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。