- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
- <TextView
- android:id="@+id/mTextView"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="我的联系人" />
- <EditText
- android:id="@+id/mEditText01"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="姓名"
- />
- <EditText
- android:id="@+id/mEditText02"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="电话号码"
- />
- <Button
- android:id="@+id/mButton"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="搜索"
- />
- </LinearLayout>
- package com.xc.ex05_10;
- import android.app.Activity;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.provider.ContactsContract;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.TextView;
- import android.widget.Toast;
- public class EX05_10 extends Activity {
- private TextView mTextView;
- private Button mButton;
- private EditText mEditText01;
- private EditText mEditText02;
- //回传标志
- private static final int PICK_CONTACT_SUBACTIVITY = 2;
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mTextView = (TextView)findViewById(R.id.mTextView);
- mEditText01 = (EditText)findViewById(R.id.mEditText01);
- mEditText02 = (EditText)findViewById(R.id.mEditText02);
- mButton = (Button)findViewById(R.id.mButton);
- mButton.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- startActivityForResult(new Intent(Intent.ACTION_PICK,
- android.provider.ContactsContract.Contacts.CONTENT_URI),
- PICK_CONTACT_SUBACTIVITY);
- }
- });
- }
- //向新打开的Activity传递参数
- //resultCode为回传的标记
- //data为B(新打开的Activity)中回传的Intent
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO Auto-generated method stub
- try{
- switch (requestCode) {
- case PICK_CONTACT_SUBACTIVITY:
- final Uri uriRet = data.getData();
- if(uriRet != null){
- try{
- //必须要有android.permission.READ_CONTACTS权限
- Cursor c = managedQuery(uriRet, null, null, null, null);
- c.moveToFirst();
- String strName = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
- mEditText01.setText(strName);
- //取得联系人的电话
- int contactId = c.getInt(c.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
- Cursor phones = getContentResolver().query(
- ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
- null,
- ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "+ contactId,
- null, null);
- StringBuffer sb = new StringBuffer();
- int typePhone, resType;
- String numPhone;
- if(phones.getCount() > 0){
- phones.moveToFirst();
- typePhone = phones.getInt(
- phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE));
- numPhone = phones.getString(
- phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
- resType = ContactsContract.CommonDataKinds.Phone.getTypeLabelResource(typePhone);
- sb.append(getString(resType) + ":" + numPhone + "\n");
- mEditText02.setText(numPhone);
- }else {
- sb.append("no Phone number found");
- }
- Toast.makeText
- (this, sb.toString(), Toast.LENGTH_SHORT).show();
- }catch (Exception e) {
- mTextView.setText(e.toString());
- e.printStackTrace();
- }
- }
- break;
- default:
- break;
- }
- }catch (Exception e) {
- e.printStackTrace();
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
- }
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.xc.ex05_10"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-sdk android:minSdkVersion="8" />
- <uses-permission android:name="android.permission.READ_CONTACTS"/>
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <activity
- android:label="@string/app_name"
- android:name=".EX05_10" >
- <intent-filter >
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
- package com.example.intentproject;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.Toast;
- public class SenderActivity extends Activity{
- private static final int MY_REQUEST_CODE = 1;
- private Button sender;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.sender);
- sender = (Button)findViewById(R.id.sender);
- sender.setOnClickListener(new Button.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(SenderActivity.this, RecieverActivity.class);
- startActivityForResult(intent, MY_REQUEST_CODE);
- }
- });
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- switch(requestCode){
- case MY_REQUEST_CODE:
- // 取出数据
- String info=data.getStringExtra("data2");
- Toast.makeText(this, info, Toast.LENGTH_LONG).show();
- break;
- }
- switch (resultCode) {
- case Activity.RESULT_CANCELED:
- Toast.makeText(this, "处理:"+String.valueOf(Activity.RESULT_CANCELED), Toast.LENGTH_LONG).show();
- break;
- case Activity.RESULT_OK:
- Toast.makeText(this, "处理:"+String.valueOf(Activity.RESULT_OK), Toast.LENGTH_LONG).show();
- break;
- case Activity.RESULT_FIRST_USER:
- String info=data.getStringExtra("data2");
- Toast.makeText(this, info, Toast.LENGTH_LONG).show();
- break;
- default:
- break;
- }
- super.onActivityResult(requestCode, resultCode, data);
- }
- }
- package com.example.intentproject;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.widget.Button;
- public class RecieverActivity extends Activity{
- private Button reciever;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.reciever);
- reciever = (Button)findViewById(R.id.reciever);
- Intent intent = new Intent();
- intent.putExtra("data2", "给你回送数据!礼尚往来!");
- this.setResult(Activity.RESULT_FIRST_USER, intent);
- }
- }
- Intent intent=this.getIntent();
- //返回数据
- intent.putExtra("data2", "给你回送数据!礼尚往来!");
- this.setResult(Activity.RESULT_FIRST_USER, intent);
- sender.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent(SenderActivity.this,
- ReciverActivity.class);
- intent.putExtra("data", "给你发送数据!");
- // 这种启动方式 ,表示是有返回结果的
- SenderActivity.this.startActivityForResult(intent,
- MY_REQUEST_CODE);
- }
- });
- Intent intent=this.getIntent();
- String info=intent.getStringExtra("data");
- Toast.makeText(this, info, Toast.LENGTH_LONG).show();
- //返回数据
- intent.putExtra("data2", "给你回送数据!礼尚往来!");
- this.setResult(Activity.RESULT_FIRST_USER, intent);
联系客服