激活另外一个activity,并将第二个activity的数据返回.
2014-06-29 22:56
429 查看
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; @Override public 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); //rquestCode 1请求码 知道当前事件是来自于哪一个控件. 控件1 startActivityForResult(intent, 1); } public void click2(View view) { Intent intent = new Intent(this, ContactActivity.class); // startActivity(intent); //控件2 /rquestCode startActivityForResult(intent, 2); } /** * 当被激活的第二个activity 使用完毕 销毁的时候 就会执行onActivityresult的方法 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // TODO Auto-generated method stub //如果ContactActivity设置结果码为几,这里就显示为几. System.out.println("结果码为"+ resultCode); super.onActivityResult(requestCode, resultCode, data); if (data != null) { String name = data.getStringExtra("name"); //rquestCode 1请求码 代表第一个按钮事件. if (requestCode == 1) { et.setText(name); //requestCode,代表第二个按钮事件. }else if(requestCode == 2){ et2.setText(name); } } } }
<pre class="java" name="code">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; //第二个activity.目标是把所有的联系人名字列出来. public class ContactActivity extends Activity { ListView lv; List<String> names; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.contact); lv = (ListView) this.findViewById(R.id.lv); //得到names. names = getContacts(); lv.setAdapter(new MyAdapter()); //处理点击事件,当点击名字的时候,获取名字 lv.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { TextView tv = (TextView) view; String name = tv.getText().toString(); Intent data = new Intent(); //在intent中放入数据. data.putExtra("name", name); //3 resultcode 是为了区分结果是来自哪里. //setsetResult(200);例如. 可以表示访问成功. 404 请求不到.等等 setResult(3, data); // 可以把当前的activity给结束掉 类似于后退键. finish(); } }); } private class MyAdapter extends BaseAdapter{ @Override public int getCount() { // TODO Auto-generated method stub return names.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public 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"; //由原rawbase得到游标,得到id. 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); //由database得到游标,将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")); //如果类型为vnd.android.cursor.item/name,就表示是名字.返回数据. if("vnd.android.cursor.item/name".equals(type)){ String data1 = datacursor.getString( datacursor.getColumnIndex("data1")); //将名字加入集合中. names.add(data1); } } datacursor.close(); } cursor.close(); return names; } }
相关文章推荐
- 启动另外一个Activity,并获取其返回数据
- 无废话Android之smartimageview使用、android多线程下载、显式意图激活另外一个activity,检查网络是否可用定位到网络的位置、隐式意图激活另外一个activity、隐式意图的配置,自定义隐式意图、在不同activity之间数据传递(5)
- android:从另外一个activity中返回数据
- Android中返回数据到前一个Activity — startActivityForResult方法
- 返回上一个Activity并返回数据
- Activity间的切换实现和数据传递以及上一个Activity返回结果的获取和处理
- android Activity返回数据到上一个Activity
- Android 实现在Activity中操作刷新另外一个Activity数据列表
- 【从头学android】从新的Activity中返回数据给前一个Activity
- Android 实现在Activity中操作刷新另外一个Activity数据列表
- 隐试意图激活另外一个Activity
- 启动另外一个activity,并返回结果
- 3.11 MonoForAndroid用户人机界面--返回数据到前一个Activity
- startActivityForResult 方法 返回数据到前一个 Activity
- 显示意图激活另外一个activity(检查用户的网络情况2.3.3)
- 数据再次原样返回 给前一个Activity (准确来说应该叫主Activity)
- Android中返回数据到前一个Activity — startActivityForResult方法
- 返回数据到前一个Activity---startActivityForResult方法
- 启动另外一个activity,并返回结果
- 向上一个activity返回数据