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的数据。。。。
其中关于联系人的资料,存放在本地的数据库中,而在外面的是可以访问的。。。