开启新的activity获取他的返回值

来源:互联网 发布:stussy 正品淘宝 编辑:程序博客网 时间:2024/05/23 18:31

manifest

    <uses-permission android:name="android.permission.READ_CONTACTS"/>
        <activity            android:name=".SelectContactActivity"            android:label="@string/select_contact" >        </activity>
activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    tools:context=".MainActivity" >    <RelativeLayout        android:layout_width="match_parent"        android:layout_height="wrap_content" >        <EditText            android:id="@+id/et_number"            android:layout_width="match_parent"            android:layout_height="wrap_content"            android:layout_marginTop="13dip"            android:hint="请输入或者选择联系人" />        <Button            android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:layout_alignParentRight="true"            android:hint="选择"            android:onClick="selectContact" />    </RelativeLayout>    <EditText        android:id="@+id/et_content"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginTop="13dip"        android:hint="请输入短信内容"        android:inputType="textMultiLine"        android:minLines="5" />    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentRight="true"        android:hint="发送短信"        android:onClick="sendSms" /></LinearLayout>
activity_select_contact.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical" >    <ListView        android:id="@+id/lv_select_contact"        android:layout_width="match_parent"        android:layout_height="match_parent" >    </ListView></LinearLayout>
contact_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:orientation="vertical" >    <TextView        android:id="@+id/tv_contact_name"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"        android:text="姓名"        android:textColor="#000000"        android:textSize="18sp" />    <TextView        android:id="@+id/tv_contact_number"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:gravity="center_horizontal"        android:text="电话"        android:textColor="#99000000"        android:textSize="14sp" /></LinearLayout>
ContactInfo.java

package org.gentry.smssender.domain;public class ContactInfo {private String name;private String number;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getNumber() {return number;}public void setNumber(String number) {this.number = number;}}
ContactInfoService.java
package org.gentry.smssender;import java.util.ArrayList;import java.util.List;import org.gentry.smssender.domain.ContactInfo;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.net.Uri;public class ContactInfoService {/** * 返回系统所有联系人的信息 *  * @return */public static List<ContactInfo> getContactInfos(Context context) {// 创建一个系统所有联系人的集合List<ContactInfo> contactInfos = new ArrayList<ContactInfo>();ContentResolver resolver = context.getContentResolver();// raw_contact表的uriUri uri = Uri.parse("content://com.android.contacts/raw_contacts");// data表的uriUri dataUri = Uri.parse("content://com.android.contacts/data");Cursor cursor = resolver.query(uri, new String[] { "contact_id" },null, null, null);while (cursor.moveToNext()) {String id = cursor.getString(0);if (id != null) {Cursor dataCursor = resolver.query(dataUri, new String[] {"data1", "mimetype" }, "raw_contact_id=?",new String[] { id }, null);ContactInfo contactInfo = new ContactInfo();while (dataCursor.moveToNext()) {String data = dataCursor.getString(0);String mimetype = dataCursor.getString(1);if ("vnd.android.cursor.item/name".equals(mimetype)) {contactInfo.setName(data);} else if ("vnd.android.cursor.item/phone_v2".equals(mimetype)) {contactInfo.setNumber(data);}}contactInfos.add(contactInfo);dataCursor.close();}}cursor.close();return contactInfos;}}
SelectContactActivity.java
package org.gentry.smssender;import java.util.List;import org.gentry.smssender.domain.ContactInfo;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.BaseAdapter;import android.widget.ListView;import android.widget.TextView;public class SelectContactActivity extends Activity {private ListView lv_select_contact;private List<ContactInfo> contactInfos;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_select_contact);lv_select_contact = (ListView) findViewById(R.id.lv_select_contact);contactInfos = ContactInfoService.getContactInfos(this);lv_select_contact.setAdapter(new ContactAdapter());// 给listview的条目设计一下点击事件lv_select_contact.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3) {ContactInfo info = contactInfos.get(position);String number = info.getNumber();// 传递数据给调用他的activityIntent data = new Intent();data.putExtra("number", number);setResult(0, data);finish();// 关闭当前的activity,然后传递数据给调用者,调用者就会执行onactivityResult的方法}});}private class ContactAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn contactInfos.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn null;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn 0;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ContactInfo info = contactInfos.get(position);View view = View.inflate(getApplicationContext(),R.layout.contact_item, null);TextView tv_contact_name = (TextView) view.findViewById(R.id.tv_contact_name);TextView tv_contact_number = (TextView) view.findViewById(R.id.tv_contact_number);tv_contact_name.setText(info.getName());tv_contact_number.setText(info.getNumber());return view;}}}
MainActivity.java
package org.gentry.smssender;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class MainActivity extends Activity {private EditText et_number;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_number = (EditText) findViewById(R.id.et_number);}/** * 激活一个新的界面,让用户选择联系人 *  * @param view */public void selectContact(View view) {Intent intent = new Intent(this, SelectContactActivity.class);// 开启一个新的activity:// startActivity(intent);// 开启一个新的activity,并且获取这个新开启的activity执行完毕后返回的结果startActivityForResult(intent, 0);}/** * 当新开启的activity关闭的时候调用的方法 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {System.out.println("onActivityResult");super.onActivityResult(requestCode, resultCode, data);if (data != null) {String number = data.getStringExtra("number");et_number.setText(number);}}}





0 0
原创粉丝点击