ContentProvider-获取系统数据

代码来至Android/Ophone开发完全讲义

首先在模拟器的通讯录中添加几个联系人

 

 

 

  
  
  
  
  1. public class Main extends ListActivity implements OnMenuItemClickListener  
  2. {  
  3.     private Cursor cursor;  
  4.  
  5.     @Override  
  6.     public void onCreate(Bundle savedInstanceState)  
  7.     {  
  8.         super.onCreate(savedInstanceState);  
  9.  
  10.         cursor = getContentResolver().query(Phones.CONTENT_URI, new String[]{"_id","name","number"}, null,  
  11.                 null, "name desc");  
  12.       
  13.         startManagingCursor(cursor);  
  14.         ListAdapter adapter = new SimpleCursorAdapter(this,  
  15.                 android.R.layout.simple_list_item_2, cursor, new String[]  
  16.                 { Phones.NAME, Phones.NUMBER }, new int[]  
  17.                 { android.R.id.text1, android.R.id.text2 });  
  18.         setListAdapter(adapter);  
  19.  
  20.     }  
  21.  
  22.     @Override  
  23.     public boolean onMenuItemClick(MenuItem item)  
  24.     {  
  25.         String columnNames = "";  
  26.         for (int i = 0; i < cursor.getColumnCount(); i++)  
  27.         {  
  28.             columnNames += "<" + cursor.getColumnName(i) + ">";  
  29.         }  
  30.         new AlertDialog.Builder(this).setTitle("联系人的所有字段").setMessage(  
  31.                 columnNames).show();  
  32.         return false;  
  33.     }  
  34.  
  35.     @Override  
  36.     public boolean onCreateOptionsMenu(Menu menu)  
  37.     {  
  38.         menu.add("显示联系人的所有字段").setOnMenuItemClickListener(this);  
  39.         return super.onCreateOptionsMenu(menu);  
  40.     }  
  41.  

 结果:

 

 具体看源码,下面可以下载

你可能感兴趣的:(android,ContentProvider,四大组件)