1、开始界面
<LinearLayout ="http://schemas.android.com/apk/res/android" ="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/et_number" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入联系人" /> <Button android:onClick="click" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="联系人" /> </LinearLayout> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/et_number2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入联系人" /> <Button android:onClick="click2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="联系人2" /> </LinearLayout></LinearLayout>
2、开启新的activity代码
1 package com.example.smssender; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.content.Intent; 6 import android.view.Menu; 7 import android.view.View; 8 import android.widget.EditText; 9 10 public class MainActivity extends Activity {11 12 private EditText et_number;13 private EditText et_number2;14 @Override15 protected void onCreate(Bundle savedInstanceState) {16 super.onCreate(savedInstanceState);17 setContentView(R.layout.activity_main);18 et_number = (EditText) findViewById(R.id.et_number);19 et_number2 = (EditText) findViewById(R.id.et_number2);20 }21 22 public void click(View view){23 Intent intent = new Intent(this, ContactActivity.class);24 //startActivity(intent);25 //请求码的作用是区别是谁发起的请求26 startActivityForResult(intent, 1);27 }28 29 public void click2(View view){30 Intent intent = new Intent(this, ContactActivity.class);31 //startActivity(intent);32 //请求码的作用是区别是谁发起的请求33 startActivityForResult(intent, 2);34 }35 36 37 @Override38 protected void onActivityResult(int requestCode, int resultCode, Intent data) {39 // TODO Auto-generated method stub40 super.onActivityResult(requestCode, resultCode, data);41 if(data != null){42 String number = data.getStringExtra("number");43 if(requestCode == 1){44 et_number.setText(number);45 }else{46 et_number2.setText(number);47 }48 }49 }50 51 }
3、获取联系人
1)清单文件
<uses-permission android:name="android.permission.READ_CONTACTS"/>//权限
2)通过内容提供者获取联系人
1 package com.example.smssender; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 import android.content.ContentResolver; 7 import android.content.Context; 8 import android.database.Cursor; 9 import android.net.Uri;10 11 public class ContactService {12 public static List<contactInfo> getContactAll(Context context){13 List<contactInfo> infos = new ArrayList<contactInfo>();14 //通过内容提供者获取联系人15 ContentResolver resolver = context.getContentResolver();16 Uri uri = Uri.parse("content://com.android.contacts/raw_contacts");17 Uri dataUri = Uri.parse("content://com.android.contacts/data");18 Cursor cursor = resolver.query(uri, null, null, null, null);19 while(cursor.moveToNext()){20 String id = cursor.getString(cursor.getColumnIndex("contact_id"));21 Cursor datacursor = resolver.query(dataUri, null, "raw_contact_id=?", new String[]{id}, null);22 contactInfo info = new contactInfo();23 while(datacursor.moveToNext()){24 String data1 = datacursor.getString(datacursor.getColumnIndex("data1"));25 String mimetype = datacursor.getString(datacursor.getColumnIndex("mimetype"));26 if("vnd.android.cursor.item/name".equals(mimetype)){27 info.setUsername(data1);28 }else if("vnd.android.cursor.item/phone_v2".equals(mimetype)){29 info.setNumber(data1);30 }31 }32 33 infos.add(info);34 35 }36 return infos;37 }38 }
4、设置联系人进Listview
1 <??> 2 <LinearLayout ="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <ListView 8 android:layout_width="match_parent" 9 android:layout_height="match_parent" 10 android:id="@+id/lv_contact"11 ></ListView>12 13 </LinearLayout>
1 <??> 2 <LinearLayout ="http://schemas.android.com/apk/res/android" 3 android:layout_width="match_parent" 4 android:layout_height="match_parent" 5 android:orientation="vertical" > 6 7 <TextView 8 android:id="@+id/et_username" 9 android:layout_width="match_parent"10 android:layout_height="wrap_content"11 />12 <TextView 13 android:id="@+id/et_number"14 android:layout_width="match_parent"15 android:layout_height="wrap_content"16 />17 18 </LinearLayout>
java代码:
1 package com.example.smssender; 2 3 import java.util.List; 4 5 import android.app.Activity; 6 import android.content.ContentResolver; 7 import android.content.Intent; 8 import android.database.Cursor; 9 import android.net.Uri;10 import android.os.Bundle;11 import android.view.View;12 import android.view.ViewGroup;13 import android.widget.AdapterView;14 import android.widget.AdapterView.OnItemClickListener;15 import android.widget.BaseAdapter;16 import android.widget.ListView;17 import android.widget.TextView;18 19 public class ContactActivity extends Activity {20 21 private ListView lv_contact;22 private List<contactInfo> infos = null;23 @Override24 protected void onCreate(Bundle savedInstanceState) {25 26 // TODO Auto-generated method stub27 super.onCreate(savedInstanceState);28 setContentView(R.layout.activity_contact);29 30 infos = ContactService.getContactAll(this);31 32 lv_contact = (ListView)findViewById(R.id.lv_contact);33 lv_contact.setAdapter(new ContactAdapter());34 35 lv_contact.setOnItemClickListener(new OnItemClickListener() {36 37 @Override38 public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,39 long arg3) {40 // TODO Auto-generated method stub41 contactInfo info = infos.get(arg2);42 String number = info.getNumber();43 Intent data = new Intent();44 data.putExtra("number", number);45 setResult(0, data);46 //关闭当前activity,把数据传回给它的激活者47 finish();48 49 }50 51 });52 }53 54 private class ContactAdapter extends BaseAdapter{55 56 @Override57 public int getCount() {58 // TODO Auto-generated method stub59 return infos.size();60 }61 62 @Override63 public Object getItem(int arg0) {64 // TODO Auto-generated method stub65 return null;66 }67 68 @Override69 public long getItemId(int arg0) {70 // TODO Auto-generated method stub71 return 0;72 }73 74 @Override75 public View getView(int arg0, View arg1, ViewGroup arg2) {76 // TODO Auto-generated method stub77 contactInfo info = infos.get(arg0);78 View view = View.inflate(ContactActivity.this, R.layout.contact_item, null);79 TextView et_username = (TextView)view.findViewById(R.id.et_username);80 et_username.setText(info.getUsername());81 82 TextView et_number = (TextView)view.findViewById(R.id.et_number);83 et_number.setText(info.getNumber()); 84 85 return view;86 }87 88 }89 90 }
原标题:开启新的activity获取它的返回值
关键词: