Android 从一个Activity跳转到另一个Activity获取第二个Activity的返回值
在做安卓开发的过程中,经常会在两个Activity之间传递数据,从第一个Activity传递数据到第二个Activity是很简单的,在第一个Activity中这样写代码
Intent intent = new Intent(packageContext, cls);intent.putExtra(name, value);startActivity(intent);
然后在第二个Activity中接受就可以了
Intent intent = getIntent();intent.getStringExtra(name);
如果是想要在第一个Activity中接受第二个Activity返回的数据改怎么办呢?其实跟上面的类似,下面就简单演示一个程序。
首先是布局文件activity_main.xml
第二个activity_content.xml
还有一个lv_item.xml
"
主Activity函数
public class MainActivity extends Activity {private EditText et_content1;private EditText et_content2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);et_content1 = (EditText) findViewById(R.id.et_content1);et_content2 = (EditText) findViewById(R.id.et_content2);}public void select_content1(View v){Intent intent = new Intent(MainActivity.this,ListContent2Activity.class);/*** 可以一次性完成这项任务,当程序执行到这段代码的时候,* 假若从T1Activity跳转到下一个Text2Activity,* 而当这个Text2Activity调用了finish()方法以后,* 程序会自动跳转回T1Activity,* 并调用前一个T1Activity中的onActivityResult( )方法。* */startActivityForResult(intent, 0);}public void select_content2(View v){Intent intent = new Intent(MainActivity.this,ListContent1Activity.class);startActivityForResult(intent, 1);}/****** 接受第二个Activity返回的数据时调用* * ****/@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null) {return;}String contentInfo = data.getStringExtra("contentInfo");// 根据返回码的不同,设置参数if (requestCode == 0) {et_content1.setText(contentInfo);}if (requestCode == 1) {et_content2.setText(contentInfo);}}
}第二个Activity
public class ListContent1Activity extends Activity {private ListView lv;private String[] objects = {"序 缘浅情深","殁年,何为殁年?","似水流年,殁形散之。","“天降神女,是之殁年。”","“济世救民,是之殁年。”","“宸国之后,是之殁年。”","不知说了多少岁月的民谣还在传唱,留芳千古的旷世佳话依旧流传。茶楼说书人仍然热火朝天的诉说一场又一场的风花雪月。","世人向来喜闻才子佳人的旷世绝恋,说书人自然也是随口便吟得一篇佳作。其中,洺帝与神女的一段奇缘固是必不可少。成了百姓茶余饭后的一记解闷良方。","世人爱听的不过是洺帝与神女至死不渝的爱情,又怎会顾得背后的凄凉与落寞。","他们道我为神女,说我为皇后,可我究竟是谁?我忘了。我只记得,有一个与我风雨同舟的少年,我是他的妻。","人生兜兜转转,百转千回,终是奈何缘浅情深。我有幸命中得以见他,即使如今只能在黄泉水畔,奈何桥头等待他来世的一寸回眸,但我亦不后悔。","世间一切爱恨情仇,哪抵一碗孟婆汤。只愿那孟婆之汤别让我忘记太多,记得来世寻他来渡"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_content);lv = (ListView) findViewById(R.id.lv);ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.lv_item,R.id.sms_info, objects);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView> parent, View view, int positon,long id) {String contentInfo = objects[positon];Intent data = new Intent();// 设置要回传的数据data.putExtra("contentInfo", contentInfo);// 设置回传码和IntentsetResult(0, data);finish();}});}}
public class ListContent2Activity extends Activity {private ListView lv;private String[] objects = {"他将手中的石头揉碎了随风扬走,于是苍穹星辰浩瀚。","世间本无日月,星盘先行。","又是一个开天辟地的故事,将最近自己的几个短篇里的梗揉了一下,出了个小练笔。","因为是练笔,很短,不到两千字,但却是完整的故事。","这里是 烨弥的烨弥。"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_content);lv = (ListView) findViewById(R.id.lv);ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), R.layout.lv_item,R.id.sms_info, objects);lv.setAdapter(adapter);lv.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView> parent, View view, int positon,long id) {String contentInfo = objects[positon];Intent data = new Intent();// 设置要回传的数据data.putExtra("contentInfo", contentInfo);// 设置回传码和IntentsetResult(1, data);finish();}});}}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
