package com.example.androidinterviewtest1;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.CommonDataKinds.Email;import android.view.Menu;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.Toast;public class MainActivity extends Activity{    ListView listView;    Cursor  cursor;        @Override    public void onCreate(Bundle savedInstanceState)    {        //如果是强制回收之后进入到这个界面的话执行这个savedInstanceState不是空的,如果是第一次进入的话就是null        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                //实施被系统强制回收的代码        String string = "kid";        if( savedInstanceState == null )        {            string = "kid";        }        else        {            string = savedInstanceState.getString("key");            if( string == null )            {                string = "kid";            }        }        Toast.makeText(getApplicationContext(), string, Toast.LENGTH_SHORT).show();                //读取系统联系的代码        listView = (ListView)findViewById(R.id.listview);        cursor = managedQuery( ContactsContract.Contacts.CONTENT_URI, null, null, null, null);        startManagingCursor(cursor);        String [] strings= new String[]                {                    ContactsContract.Contacts._ID,                    ContactsContract.Contacts.DISPLAY_NAME                };        int ints [] = new int[]                {                R.id.text1,                R.id.text2                };        SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this,R.layout.listviewitem,cursor, strings,ints);        listView.setAdapter(simpleCursorAdapter);        listView.setOnItemClickListener( new OnItemClickListener()        {            @Override            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3)            {                                System.out.println("arg2="+arg2);                System.out.println("arg3="+arg3);                                               String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));                String name = cursor.getString( cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME) );                                cursor.move(Integer.parseInt(id));                System.out.println("id="+id);                System.out.println("name="+name);                                Cursor email = MainActivity.this.getContentResolver().query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID+"="+id, null, null);                String string1 = new String();                String strings [] = new String[email.getCount()];                int j=0;                while (email.moveToNext())                {                    string1 += "  | " + email.getString( email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA) );                    //strings[j++] = email.getString( email.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA) );                }                email.close();                                Toast.makeText(MainActivity.this,string1 ,Toast.LENGTH_SHORT).show();                System.out.println("string1 = " + string1);            }        });    }                    //当软件被强制回收的操作代码    @Override    protected void onSaveInstanceState(Bundle outState)    {        super.onSaveInstanceState(outState);        //写入数据        outState.putString("key", "ljz");    }    @Override    public boolean onCreateOptionsMenu(Menu menu)    {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }}

  

首先是首页的代码。。。

主要使用的方法是使用URI的访问,系统的Content Provider的数据。。。。

其中关于联系人的资料,存放在本地的数据库中,而在外面的是可以访问的。。。




更多相关文章

  1. android studio   Listview简单实例
  2. android CVE 漏洞汇总
  3. qemu 0.9.1 与 android 环境编译
  4. android 代码设置间距
  5. Android屏蔽Home键
  6. Android获取基站坐标代码
  7. android强制kill进程
  8. Android(安卓)静默安装apk
  9. 学习日记-- Android写文件到SDCard的代码

随机推荐

  1. padding和margin的区别及其属性
  2. Android源码博文集锦2
  3. andirons studio五大布局简介
  4. [Android][设置最小(大)宽高]
  5. Android(安卓)面试经验 - Android(安卓)
  6. listview android:cacheColorHint,listSe
  7. android系统定制从听说到入门二
  8. Android的源代码结构
  9. Android中Activity启动模式详解
  10. Android常用资源总结