Android(安卓)启动activity并且获取他的返回值
16lz
2021-12-21
DemoActivity.java:
package cn.itcast.getdata;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.EditText;public class DemoActivity extends Activity {EditText et, et2;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);et = (EditText) this.findViewById(R.id.et_contact1);et2 = (EditText) this.findViewById(R.id.et_contact2);}public void click(View view) {Intent intent = new Intent(this, ContactActivity.class);// startActivity(intent); 1 为请求码startActivityForResult(intent, 1);}public void click2(View view) {Intent intent = new Intent(this, ContactActivity.class);// startActivity(intent); 2 为请求码startActivityForResult(intent, 2);}/** * 当被激活的activity 使用完毕 销毁的时候 就会执行onActivityresult的方法 */@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubSystem.out.println("结果码为" + resultCode);super.onActivityResult(requestCode, resultCode, data);if (data != null) {String name = data.getStringExtra("name");if (requestCode == 1) {et.setText(name);} else if (requestCode == 2) {et2.setText(name);}}}}ContactActivity.java:
package cn.itcast.getdata;import java.util.ArrayList;import java.util.List;import android.app.Activity;import android.content.Intent;import android.database.Cursor;import android.graphics.Color;import android.net.Uri;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 ContactActivity extends Activity {ListView lv;List<String> names;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.contact);lv = (ListView) this.findViewById(R.id.lv);names = getContacts();lv.setAdapter(new MyAdapter());lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {TextView tv = (TextView) view;String name = tv.getText().toString();Intent data = new Intent();data.putExtra("name", name);// 3 为结果码setResult(3, data);// 可以把当前的activity给结束掉finish();}});}private class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {// TODO Auto-generated method stubreturn names.size();}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {TextView tv = new TextView(ContactActivity.this);tv.setTextSize(28);tv.setTextColor(Color.RED);tv.setText(names.get(position));return tv;}}private List<String> getContacts() {String rawbase = "content://com.android.contacts/raw_contacts";String database = "content://com.android.contacts/data";Cursor cursor = this.getContentResolver().query(Uri.parse(rawbase),null, null, null, null);List<String> names = new ArrayList<String>();while (cursor.moveToNext()) {String id = cursor.getString(cursor.getColumnIndex("_id"));System.out.println("id =" + id);Cursor datacursor = this.getContentResolver().query(Uri.parse(database), null, "raw_contact_id=?",new String[] { id }, null);while (datacursor.moveToNext()) {String type = datacursor.getString(datacursor.getColumnIndex("mimetype"));if ("vnd.android.cursor.item/name".equals(type)) {String data1 = datacursor.getString(datacursor.getColumnIndex("data1"));names.add(data1);}}datacursor.close();}cursor.close();return names;}}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" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView></LinearLayout>main.xml:
<?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:layout_width="fill_parent" android:layout_height="wrap_content" android:text="选择联系人" /> <EditText android:id="@+id/et_contact1" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="click" android:text="选择第一个联系人" > </Button> <EditText android:id="@+id/et_contact2" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:onClick="click2" android:text="选择第二个联系人" > </Button></LinearLayout>AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.itcast.getdata" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:label="@string/app_name" android:name=".DemoActivity" > <intent-filter > <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:label="选择联系人" android:name=".ContactActivity" ></activity> </application></manifest>
更多相关文章
- android调用系统添加联系人界面
- Android中Dialog对话框使用总结及demo
- Android模仿jquery异步请求
- android与pc的socket通信JAVA
- 【Android】Http请求
- android service
- android滑轮选择控件——whell
- Android(安卓)O 为应用添加默认权限,进入应用时不需要请求 Permis
- Android(安卓)Asynchronous Http Client