36.activity返回携带数据
来源:互联网 发布:手机淘宝开店没反应 编辑:程序博客网 时间:2024/05/15 22:39
有时候需要activity返回的时候携带数据返回,比如短信群发,添加多个联系人的时候,需要选择listView里面的联系人,同时把联系人的数据返回。
首先需要在主activity里面设置意图,进行跳转,使用startActivityForResult而不是startActivity
Intent intent = new Intent(this, contactActivity.class); //启动选择联系人的activity //告诉系统这个activity返回时会返回数据,第二个参数是请求码 startActivityForResult(intent, 10);
跳转到界面以后,封装数据准备携带数据返回
Intent data = new Intent();//把要传递的数据封装到intent对象data.putExtra("name", objects[position]);//data就是intent携带的数据,此activity一旦被销毁data就会传递到此activity中setResult(0, data); //第一个参数是响应码//销毁当前的activityfinish();设置条目监听使用setOnItemClickListener
lv.setOnItemClickListener(new OnItemClickListener(){ //position:用户点击率哪一个条目@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {} });
获取到封装的数据返回,执行onActivityResult(int requestCode, int resultCode, Intent data)来反馈获取的数据
当一个应该返回数据的activity被销毁的时候,此方法调用,用于接受数据
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data); }
请求码和响应码,主要是针对请求不同的activity用请求不同的activty,同时一个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" tools:context=".MainActivity" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" > <EditText android:id="@+id/et_name" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:hint="请输入联系人" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="请选择联系人" android:onClick="click1" /> </LinearLayout><EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:lines="5" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="发送" android:onClick="click2" /></LinearLayout>MainActivity.java
package com.ldw.contact;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 { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void click1(View v){ Intent intent = new Intent(this, contactActivity.class); //启动选择联系人的activity //告诉系统这个activity返回时会返回数据 startActivityForResult(intent, 10); } //当一个应该返回数据的activity被销毁的时候,此方法调用,用于接受数据 @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ //根据请求码判断哪一个activity,接受哪一个activity返回的数据 if(requestCode == 10){ EditText et_name = (EditText) findViewById(R.id.et_name); //获取到传递过来的参数 et_name.setText(data.getStringExtra("name")); } super.onActivityResult(requestCode, resultCode, data); } }
activity_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>
item_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" > <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
contactActivity.java
package com.ldw.contact;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class contactActivity extends Activity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_contact); ListView lv = (ListView) findViewById(R.id.lv); final String[] objects = new String[]{ "A", "B", "C", "D" }; lv.setAdapter(new ArrayAdapter<String> (this, R.layout.item_contact, R.id.tv, objects)); //对listView设置条目点击侦听,知道什么时候点击率条目,以及点击了哪一个条目 lv.setOnItemClickListener(new OnItemClickListener(){ //position:用户点击率哪一个条目@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {Intent data = new Intent();//把要传递的数据封装到intent对象data.putExtra("name", objects[position]);//data就是intent携带的数据,此activity一旦被销毁data就会传递到此activity中setResult(0, data);//销毁当前的activityfinish();} });}}
0 0
- 36.activity返回携带数据
- 跳转Activity携带数据
- Android启动一个新的activity并携带数据,返回数据给上一个activity
- Intent携带数据切换Activity
- activity跳转时携带数据:
- Android--Activity在跳转时携带数据
- 34.activity携带数据显示跳转
- 黑马Android:Activity在跳转时携带数据
- activity返回数据
- 调用startActivityForResult启动activity,返回当前页不响应的问题(附带activity携带参数流程)
- 两个activity的数据返回
- 打开一个Activity返回数据
- 向上一个activity返回数据
- Activity返回数据的跳转
- 返回Activity时传递数据
- Activity通信之返回数据
- Activity销毁时返回数据
- 返回activity时传递数据
- 进程间通信的几种方式
- 1024. 科学计数法 (20)PAT乙级&&1073. Scientific Notation (20)PAT甲级
- Material Design(3)(图特多)
- [HDU1556] Color the ball - 树状数组
- 类加载机制 读笔
- 36.activity返回携带数据
- maven项目 出现Specified web-root folder does not exist 的错误。
- 性能优化之list的size
- Android camera总回顾
- PAT A1082. Read Number in Chinese (25/21)
- UVA 524 素数环Prime Ring Problem (回溯法)
- 系统还原手动GHOST使用教程
- 我们究竟要用Docker做什么
- [HDU3584] Cube - 三维树状数组