代码:
ListViewActivity:
1 package com.vanceinfo.ListView;
2
3 import android.app.Activity;
4 import android.database.Cursor;
5 import android.graphics.Color;
6 import android.os.Bundle;
7 import android.provider.ContactsContract;
8 import android.provider.ContactsContract.PhoneLookup;
9 import android.view.View;
10 import android.widget.AdapterView;
11 import android.widget.LinearLayout;
12 import android.widget.ListAdapter;
13 import android.widget.ListView;
14 import android.widget.SimpleCursorAdapter;
15 import android.widget.Toast;
16
17 public class ListViewActivity extends Activity
18 {
19 LinearLayout mLinearLayout;
20
21 ListView mListView;
22
23 @Override
24 public void onCreate(Bundle savedInstanceState)
25 {
26 super.onCreate(savedInstanceState);
27 // setContentView(R.layout.main);
28 // 创建linearLayout布局对象
29 mLinearLayout = new LinearLayout(this);
30 // 设置布局LinearLayout的属性
31 mLinearLayout.setOrientation(LinearLayout.VERTICAL);
32 mLinearLayout.setBackgroundColor(android.graphics.Color.BLACK);
33 // 创建ListView对象
34 mListView = new ListView(this);
35 LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
36 LinearLayout.LayoutParams.WRAP_CONTENT);
37 mListView.setBackgroundColor(Color.BLACK);
38 // 添加mListView到mLinearLayout布局
39 mLinearLayout.addView(mListView, params);
40 // 设置显示mLinearLayout
41 setContentView(mLinearLayout);
42 // 获取数据库Phones的Cursor
43 Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
44 startManagingCursor(cursor);
45 // ListAdapter是ListView和后台数据的桥梁
46 ListAdapter adapter = new SimpleCursorAdapter(this,
47 // 定义List中每一行的显示模板
48 // 表示每一行包含两个数据项
49 android.R.layout.simple_list_item_2,
50 // 数据库的Cursor对象
51 cursor,
52 // 从数据库的NAME和NUMBER两个列中取数据
53 new String[] {PhoneLookup.DISPLAY_NAME},
54 // 与NAME和NUMBER对应的Views
55 new int[] {android.R.id.text1});
56 // 将adpter添加到mListView中
57 mListView.setAdapter(adapter);
58 // 为mListView视图添加setOnItemSelectedListener监听
59 mListView.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener()
60 {
61
62 @Override
63 public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
64 {
65 DisplayToast("滚动到第" + Long.toString(parent.getSelectedItemId()) + "项");
66 }
67
68 @Override
69 public void onNothingSelected(AdapterView<?> parent)
70 {
71 // 没有选中
72 }
73 });
74 // 为mListView视图添加setOnItemClickListener监听
75 mListView.setOnItemClickListener(new AdapterView.OnItemClickListener()
76 {
77
78 @Override
79 public void onItemClick(AdapterView<?> parent, View view, int position, long id)
80 {
81 DisplayToast("选中了第" + Integer.toString(position + 1) + "项");
82 }
83 });
84 }
85
86 // 显示Toast
87 public void DisplayToast(String string)
88 {
89 Toast.makeText(this, string, Toast.LENGTH_SHORT).show();
90 }
91 }
在AndroidManifest.xml中添加权限:
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="com.vanceinfo.ListView"
4 android:versionCode="1"
5 android:versionName="1.0">
6 <uses-sdk android:minSdkVersion="8" />
7
8 <application android:icon="@drawable/icon" android:label="@string/app_name">
9 <activity android:name="ListViewActivity"
10 android:label="@string/app_name">
11 <intent-filter>
12 <action android:name="android.intent.action.MAIN" />
13 <category android:name="android.intent.category.LAUNCHER" />
14 </intent-filter>
15 </activity>
16 </application>
17 <!--获得了电话本数据,需要在AndroidManifest.xml中加上权限 -->
18 <uses-permission android:name="android.permission.READ_CONTACTS"/>
19 </manifest>
效果图
![](data:image/png;base64,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)