ĐỌC DANH BẠTrong bài viết này mình se demo cho các bạn cách đọc danh bạ trong Virtual Devices và hiển thị lên trên 1 ListView Đầu tiên các bạn tạo 1 Project như sau: Project name: TestL
Trang 1ĐỌC DANH BẠ
Trong bài viết này mình se demo cho các bạn cách đọc danh bạ trong Virtual Devices
và hiển thị lên trên 1 ListView
Đầu tiên các bạn tạo 1 Project như sau:
Project name: TestListView
Build Target: Android 2.3.3
Application name: TestListView
Package name: com.dac.TestListView
Create Activity: ListViewActivity4
Tiếp theo, muốn đọc được danh bạ các bạn khai báo trong AndroidManifest.xml dòng màu vàng như sau:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androidbook.commoncontrols"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".ListViewActivity4"
android:label="@string/listview4_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
</manifest>
Các bạn sữa tên file main.xml lại thành list.xml và thiết kế giao diện như sau:
<?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">
<ListView android:id="@android:id/list"
android:layout_width="fill_parent" android:layout_height="0dip"
android:layout_weight="1" />
Trang 2<Button android:id="@+id/btn" android:onClick="doClick"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Submit Selection" />
</LinearLayout>
Và cuối cùng các bạn code file ListViewActivity4.java như sau:
package com.dac.TestListView
import android.app.ListActivity;
import android.content.ContentUris;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.util.Log;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class ListViewActivity4 extends ListActivity
{
private static final String TAG = "ListViewActivity4";
private static final Uri CONTACTS_URI = ContactsContract.Contacts.CONTENT_URI;
private SimpleCursorAdapter adapter = null;
private ListView lv = null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
lv = getListView();
String[] projection = new String[]{ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME};
Cursor c = managedQuery(CONTACTS_URI,
projection, null, null,
ContactsContract.Contacts.DISPLAY_NAME);
String[] cols = new String[]{ContactsContract.Contacts.DISPLAY_NAME}; int[] views = new int[] {android.R.id.text1};
adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_multiple_choice,
c, cols, views);
this.setListAdapter(adapter);
lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
Trang 3}
public void doClick(View view) {
if(!adapter.hasStableIds()) {
Log.v( TAG, "Data is not stable");
return;
}
long[] viewItems = lv.getCheckedItemIds();
for(int i=0; i<viewItems.length; i++) {
Uri selectedPerson = ContentUris.withAppendedId(
Log.v( TAG, selectedPerson.toString() + " is checked.");
}
}
}
Và sau cùng các bạn debug như sau: (các bạn phải tạo 1,2 contact trên máy ảo mới thấy được hoạt động đầy dủ của ứng dụng)
Mọi ý kiến đóng góp các bạn vui lòng gữi bài viết về forum trang web
www.laptrinhdidong.vn Rất mong nhận được sự phản hồi của các bạn.