如何获得Activity的返回值?

fhlkm 2011-09-09 09:33:40
情况 是这样的:
ActivityOne 调用一个普通类ClassA,ClassA产生一个ActivityTwo,如何让ActiviyTwo的返回值传到ActivityOne? 谢谢?
...全文
431 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshisuzhiheng 2014-05-17
  • 打赏
  • 举报
回复
楼主,我也遇到同样的问题,你的问题可以这样解决,把A的Context传给B,B startActivityForResult,C处理之后,在A的onActivityResult可以拿到信息...不过我的问题是,我想在B里面拿信息...试了很多种方法都不行,求帮助。
傲慢的上校 2011-11-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yangwuweiyouwei 的回复:]

A跳到B用的是startactivityforresult,B跳到C用的是startactivityforresult
C采用finish结束把数据传回B的onActivityResult,并且多回传个参数“back”
在B的onActivityResult判断这个参数,如果存在,就继续把Bundle回传给A
[/Quote]这样就好。。。
j_f0001 2011-09-13
  • 打赏
  • 举报
回复
startActivityForResult
傲慢的上校 2011-09-12
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 bossdarcy 的回复:]

使用startActivityForResutl 和onActivityResult 这两个方法即可完成。参考地址http://thinkblog.sinaapp.com/?p=230
[/Quote]用 startActivityForResut 就行了
yue985 2011-09-12
  • 打赏
  • 举报
回复
可以在ActivityTwo相应的组件中使用Intent吧,相应组件就是导致从ActivityTwo中跳转的组件
浪中云 2011-09-11
  • 打赏
  • 举报
回复
楼上说的方法都可以实现,你自己弄弄
技术小黑屋 2011-09-11
  • 打赏
  • 举报
回复
使用startActivityForResutl 和onActivityResult 这两个方法即可完成。参考地址http://thinkblog.sinaapp.com/?p=230
技术小黑屋 2011-09-11
  • 打赏
  • 举报
回复
使用startActivityForResutl 和onActivityResult 这两个方法即可完成。参考地址http://thinkblog.sinaapp.com/?p=230
小裴同学 2011-09-09
  • 打赏
  • 举报
回复
我明白你以上了嘿嘿。你要再普通类中实现跳转,嗯。你可以在ActivityOne 调用ClassOne的时候通过构造函数或者传值直接把你的ActivityOne 的context对象传给这个java类,跳转或者设置返回值都不会有问题了呢。

public ClassOne(Context c, String title) {
this.layoutinflater = LayoutInflater.from(c);
this.title = title;
this.context = c;
}


Intent intent = new Intent(context,ActivityTwo.class);
context.startActivity(intent);

你要返回值可以用1楼的方法。
hen_hen_hen_hen 2011-09-09
  • 打赏
  • 举报
回复
1楼正解。
另外你可以将数据保存在static变量中,还可以用数据库保存。
fhlkm 2011-09-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 peijiangping1989 的回复:]

我没搞清楚楼主意思。。。
[/Quote]
Activity类ActivityOne 中调用了一个普通类ClassOne,ClassOne中在一定条件下可以启动ActivityTwo, ActivityTwo在关闭时可以返回几个参数String1,String2,如何启动ActivityOne并获得String1,String2?
小裴同学 2011-09-09
  • 打赏
  • 举报
回复
我没搞清楚楼主意思。。。
BadPattern 2011-09-09
  • 打赏
  • 举报
回复
使用startActivityForResult方法
chenmeng824 2011-09-09
  • 打赏
  • 举报
回复
通过最近的学习发现,像你这种ClassA要产生一个Activity的话,最好把ClassA继承Activity,只是我的建义
杰拉德 2011-09-09
  • 打赏
  • 举报
回复

//A数据传给B
Intent intent = new Intent();
intent.setclass(A.this, B.class);
Bundle mbundle = new Bundle();//一个容器,可以装名值对
mbundle.putString("aa", "传递的数据");
intent.putExtras(mbundle);
startActivity(intent);

//B接收数据的代码,在Activity中覆盖onActivityResult方法
Bundle bundle = getIntent().getExtras();
String data = bundle.getString("aa");

希望对你有帮助!!!
刍狗万物 2011-09-09
  • 打赏
  • 举报
回复
A跳到B用的是startactivityforresult,B跳到C用的是startactivityforresult
C采用finish结束把数据传回B的onActivityResult,并且多回传个参数“back”
在B的onActivityResult判断这个参数,如果存在,就继续把Bundle回传给A

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧