永发信息网

fragment能打开activity并返回数据吗

答案:2  悬赏:80  手机版
解决时间 2021-02-13 13:57
fragment能打开activity并返回数据吗
最佳答案
能。在fragment里面直接startActivityForResult,然后在fragment的onActivityResult里面接收。切记千万不要fragment.getActivity().startForResult,这样会执行activity的onActivityResult。
全部回答
1、在实际应用中,我们不仅要向activity中传数据,也要从activity中返回数据。虽然传递数据和返回数据类似,也可以采用前面四篇中提到的4种方法,但是一般建议采用intent对象的方式来返回数据,使用这种方式返回数据,需要使用startactivityforresult方法来显示activity; 2、新建android项目“android_intent_forresult”,打开布局文件“activity_main.xml”,添加“linearlayout”、“textview”、“editview”等标签,代码如下: 3、新建布局文件“other.xml”,添加“textview”、“editview”、“button”标签,代码如下: 4、新建“otheractivity.java”文件,并使其继承“activity”,添加“oncreate”方法,代码如下:package com.android.myintent; import android.app.activity; import android.os.bundle; public class otheractivity extends activity { @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.other); } } 5、在“androidmanifest.xml”清单文件中加入“activity”,加入代码: 6、在“main.java”中添加button成员和“setonclicklistener”,实现两个button的跳转,点击第一个activity后,出现第二个activity;在此方法内部创建意图,用“startactivityforresult”启动意图,并在main类里重写“onactivityresult”;添加“edittext”成员,实现数据的输入并传入intent中。代码如下: package com.android.myintent; import android.r.integer; import android.os.bundle; import android.app.activity; import android.content.intent; import android.view.menu; import android.view.view; import android.widget.button; import android.widget.edittext; public class main extends activity { private button button; private final static int requestcode = 1;// 表示返回的结果码 private edittext one, two, result; // 数据输入 @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); one = (edittext) this.findviewbyid(r.id.one); two = (edittext) this.findviewbyid(r.id.two); result = (edittext) this.findviewbyid(r.id.result); button = (button) this.findviewbyid(r.id.button); button.setonclicklistener(new view.onclicklistener() { @override public void onclick(view arg0) { // todo auto-generated method stub // 点击后获得用户录入的值 int a = integer.parseint(one.gettext().tostring()); int b = integer.parseint(two.gettext().tostring()); // 创建意图 intent intent = new intent(main.this, otheractivity.class); // 将值传入意图 intent.putextra("a", a); intent.putextra("b", b); startactivityforresult(intent, requestcode);// 表示可以返回结果 } }); } // 再重写一个onactivityresult方法,作用是将当前activity中的数据传递到另一个activity的意图中后,实现跳转,再回传回来。 @override protected void onactivityresult(int requestcode, int resultcode, intent data) { // todo auto-generated method stub super.onactivityresult(requestcode, resultcode, data); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate the menu; this adds items to the action bar if it is present. getmenuinflater().inflate(r.menu.main, menu); return true; } } 7、在“otheractivity.java”文件中添加button和textview成员,获取意图中的数据,代码如下:package com.android.myintent; import android.app.activity; import android.content.intent; import android.os.bundle; import android.widget.button; import android.widget.textview; public class otheractivity extends activity { private button button; private textview textview; @override protected void oncreate(bundle savedinstancestate) { // todo auto-generated method stub super.oncreate(savedinstancestate); setcontentview(r.layout.other); // 实例化button和textview button = (button) this.findviewbyid(r.id.button2); textview = (textview) this.findviewbyid(r.id.msg); intent intent = getintent(); // 获取intent // 取出intent中的值 int a = intent.getintextra("a", 0); int b = intent.getintextra("b", 0); textview.settext(a + " + " + b + " = " + " ? "); } } 运行一下,看下效果: 点击“计算结果”,跳转到第二个activity:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
仿佛地址有知道的么?有点事想过去
南口庆平防水材料厂在哪里啊,我有事要去这个
淘宝买了双鞋,小了 吊牌不小心弄掉了 还可以
“汉朝早期,统治者试图在周朝松散制度联盟和
各位楼主 有谁知道 颍上到古城9路公交车最晚
回归自然花店怎么去啊,我要去那办事
联鸿阀门总汇在什么地方啊,我要过去处理事情
锂电池里面的隔膜有什么作用?
高考书《试题调研系列》哪本好?(我想要本练
今天突然收到南京农业大学工学院的入学通知书
相恋鲜花(相恋鲜花693店)地址在什么地方,想
【歌唱二小放牛郎】《歌唱二小放牛郎》读后感
国家电网潢川电业局供电营业厅我想知道这个在
鑫陇驾校地址在哪,我要去那里办事
缇香夕月鲜花速递——金路辉煌婚庆鲜花地址好
推荐资讯
伊人花卉(金柳路西山园艺超市内)怎么去啊,我
查北大青岛消防栓启动泵按扭带电话插孔及警铃
流形美发基地地址在什么地方,我要处理点事
创美轩美发工作室地址好找么,我有些事要过去
中国电信(怀柔南大街营业厅)怎么去啊,我要去
龙城花卉地址在什么地方,想过去办事
心梦圆辅导中心地址在哪,我要去那里办事
百世汇通(临河中学对面百世汇通)怎么去啊,我
大家好!请教两问题。比如一家门店一个月拿货
“固时俗之工巧兮,偭规矩而改错”是什么意思
汨罗市人民医院西门在什么地方啊,我要过去处
k362在苏州那个站停车
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?