Bài 31: Sử Dụng ContentProvider Trong Android(P2)

Leave a Comment
- Source code xử lý xem danh bạ ( ShowAllContactActivity.java):
- Tôi viết theo 2 cách : Dùng CursorLoader và getContentResolver
package tranduythanh.com; import java.util.ArrayList; import android.net.Uri; import android.os.Bundle; import android.provider.ContactsContract; import android.app.Activity; import android.content.CursorLoader; import android.database.Cursor; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ListView;
public class ShowAllContactActivity extends Activity { Button btnback; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_show_all_contact); btnback=(Button) findViewById(R.id.btnback); btnback.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub finish(); } }); showAllContacts1(); } /** * hàm danh toàn bộ danh bạ * dùng CursorLoader */ public void showAllContacts1() { Uri uri=Uri.parse("content://contacts/people"); ArrayList<String> list=new ArrayList<String>(); CursorLoader loader=new CursorLoader(this, uri, null, null, null, null); Cursor c1=loader.loadInBackground(); c1.moveToFirst(); while(c1.isAfterLast()==false){ String s=""; String idColumnName=ContactsContract.Contacts._ID; int idIndex=c1.getColumnIndex(idColumnName); s=c1.getString(idIndex)+" - "; String nameColumnName=ContactsContract.Contacts.DISPLAY_NAME; int nameIndex=c1.getColumnIndex(nameColumnName); s+=c1.getString(nameIndex); c1.moveToNext(); list.add(s); } c1.close(); ListView lv=(ListView) findViewById(R.id.listView1); ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); lv.setAdapter(adapter); } /** * hàm danh toàn bộ danh bạ * dùng getContentResolver */ public void showAllContacts2() { Uri uri=Uri.parse("content://contacts/people"); ArrayList<String> list=new ArrayList<String>(); Cursor c1=getContentResolver() .query(uri, null, null, null, null); c1.moveToFirst(); while(c1.isAfterLast()==false) { String s=""; String idColumnName=ContactsContract.Contacts._ID; int idIndex=c1.getColumnIndex(idColumnName); s=c1.getString(idIndex)+" - "; String nameColumnName=ContactsContract.Contacts.DISPLAY_NAME; int nameIndex=c1.getColumnIndex(nameColumnName); s+=c1.getString(nameIndex); c1.moveToNext(); list.add(s); } c1.close(); ListView lv=(ListView) findViewById(R.id.listView1); ArrayAdapter<String>adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list); lv.setAdapter(adapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.activity_show_all_contact, menu); return true; } }
- Lưu ý cấp quyền cho ứng dụng:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
 package="tranduythanh.com"
 android:versionCode="1"
 android:versionName="1.0" >
 
<uses-sdk
 android:minSdkVersion="14"
 android:targetSdkVersion="17" />
 
<uses-permission android:name="android.permission.READ_CONTACTS" />
 <uses-permission android:name="android.permission.READ_CALL_LOG" />
 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
 <uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
 
<application
 android:allowBackup="true"
 android:icon="@drawable/ic_launcher"
 android:label="@string/app_name"
 android:theme="@style/AppTheme" >
 <activity
 android:name="tranduythanh.com.MainActivity"
 android:label="@string/app_name" >
 <intent-filter>
 <action android:name="android.intent.action.MAIN" />
 
<category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 </activity>
 <activity
 android:name="tranduythanh.com.ShowAllContactActivity"
 android:label="@string/title_activity_show_all_contact" >
 </activity>
 </application>
 
</manifest>
- Dòng 11, 12, 13, 14 là cấp quyền cho ứng dụng có thể truy suất các chức năng mong muốn.
- Bây giờ bạn thực hiện ứng dụng và quan sát, giờ Tôi chạy lên và dùng chức năng xem toàn bộ danh bạ:
33_contentprovider_2- Tương tự như vậy bản thử các chức năng còn lại trong ứng dụng.
- Bạn có thể tải coding mẫu đầy đủ ở đây: http://www.mediafire.com/download/kaac7d36ocvr8ba/LearnContentProvider.rar

0 nhận xét:

Đăng nhận xét