使用ListView显示联系人的信息

activity类:

public class MainActivity extends Activity {

private String TAG = "MainActivity";
private LinearLayout layout = null;
private ListView list = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.VERTICAL);
// layout.setBackgroundColor(Color.BLACK);
list = new ListView(this);
LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
// list.setBackgroundColor(Color.RED);
layout.addView(list, param);
setContentView(layout);
list.setAdapter(getAdapter());
list.setOnItemSelectedListener(new OnItemSelectedListener(){

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
displayToast("滚动到了第"+Long.toString(arg0.getSelectedItemId())+"项");
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
//没有选中
displayToast("没有选中");
}
});
list.setOnItemClickListener(new OnItemClickListener(){

@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
displayToast("选中了第"+Integer.toString(arg2+1)+"项");
}
});
}

public ListAdapter getAdapter(){
List<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while(cursor.moveToNext()){
HashMap<String,String> map = new HashMap<String,String>();
String name = cursor.getString(cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME));
String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
int phoneCount = cursor
.getInt(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
String num = null;
if (phoneCount > 0) {
// 获得联系人的电话号码
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
if (phones.moveToFirst()) {
num = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
}
phones.close();
}
map.put("name", name);
map.put("num", num);
list.add(map);
}
Log.e(TAG,list.toString());
SimpleAdapter adapter = new SimpleAdapter(this,list,R.layout.list_item,new String[]{"name","num"},new int[]{R.id.text01,R.id.text02});
return adapter;

}

public void displayToast(String string){
Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

}

list_item.XML

<?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:id="@+id/text01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="name"
/>

<TextView
android:id="@+id/text02"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="num"
/>
</LinearLayout>

时间: 2024-10-13 00:14:49

使用ListView显示联系人的信息的相关文章

Android_(控件)使用ListView显示Android系统中联系人信息

使用ListView显示手机中联系人的姓名和电话号码 父类布局activity_main.xml,子类布局line.xml(一个文件的单独存放) 运行截图: (避免泄露信息对部分地方进行了涂鸦O(∩_∩)O!) 程序结构 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android&quo

使用ListView显示信息列表,用监听器和适配器,操作

2014-08-18 数据适配器: 是连接数据源和视图界面的桥梁 1.数组适配器(ArrayAdapter):用于绑定格式单一的数据 数据源:可以是集合或数组 2.简单适配器(SimpleAdapter):用于绑定格式复杂的数据 数据源:只能是特定泛型的集合 监听器: 程序和用户(或系统)交互的桥梁 OnScrollListener: 检测滚动的变化,可以用于视图在滚动中加载数据 OnItemClickListener: 用于处理视图中单个条目的点击事件 适配器数据的刷新 notifyDataC

day4.29总结_友录_设置圆圈和显示联系人的详细信息

一.显示头像 ContactAdapter public View getView(int position, View convertView, ViewGroup parent) { ViewHolder vh; if(convertView==null){ convertView = inflater.inflate(R.layout.item_contact_layout, parent,false); vh = new ViewHolder(); vh.ivAvatar = (Imag

【Android Developers Training】 99. 获取联系人详细信息

注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/contacts-provider/retrieve-details.html 这节课将会展示如何获取一个联系人的详细数据,比如电子邮件地址,电话号码,等等.当用户获得一个联系人后,他会想要查看他的详细信息.你可以展示给他们所有的信息,或者只展示某一特定类

28.悬浮窗、listview显示不同条目

APP管理界面 布局 用户程序那一行一直在最上面,拖动到系统程序时又显示系统多少个 <FrameLayout android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:id="@+id/ll_loading" android:layout_width="fill_parent"

Cubieboard1显示DS18B20温度信息到LED

Cubieboard1的内核已经支持w1温度传感器DS18B20 (依赖的内核选项和模块包括dallas's 1-wire support, gpio_sunxi, w1_sunxi, w1_gpio, w1_slave_therm ). 下图的DIY是在8位8段LED显示模块上同时显示当前时间和气温的实验. jarry大侠在很久前的帖子(http://forum.cubietech.com/forum.php?mod=viewthread&tid=474)中介绍了DS18B20在cubiebo

ListView显示不同样式的item

先look图 我们再使用listview时,listview的item大多时候都是一种样式,在很多app中也很常见,但有时候根据需求,可能数据的数量不一样,同个类型的数据显示的位置不同,亦或者有的item需要图片,有的不需要,但是这些又必须在同一个listview中显示,这时我们就需要在listview中显示多种样式的item,首先我们需要考虑的是如何将不同数量的数据装载到ArrayList<~>中呢,先看看下面的listViewItem,. 1 package com.example.ker

IIS7如何显示详细错误信息

原文:IIS7如何显示详细错误信息 使用Vista或Win7操作系统的用户在不断增加,用Win7旗舰版开发测试程序程序人员也与日俱增,Win7下测试程序时,如果程序出 错,IIS7会提示HTTP Error 500 - Internal Server Error (500 - 内部服务器错误) 的简单错误信息.这些简单信息对应用户来说比较友好,但是却使开发测试人员不清楚具体明确的错误信息.该如何让Win7下显示详细的错误信息呢?可以通过 配置IIS7 以输出详细错误信息. 通过 IIS 配置 1

如何让联系人头像显示联系人姓名的第一个汉字

在android 4.4.3上面,联系人的头像默认显示首字母,但是不支持中文字符,如下图: 如果联系人名字的第一位是英文字符(a-z || A-Z),则默认头像将显示该首字母. 如果支持中文时显示第一个汉字,那就happy了. 那就看看如何通过修改源代码来实现这一小功能吧- 我们还是先了解下联系人头像加载的流程吧- 联系人头像加载这个问题还是很有意思的,在Contacts中使用ContactPhotoManager类(严格来讲是这个类的子类)来实现头像的异步加载. 这个类还使用了LruCache