中易网

如何将数据从Activity返回到Fragment

答案:2  悬赏:0  
解决时间 2021-02-15 06:26
如何将数据从Activity返回到Fragment
最佳答案
Activity不能直接跳转到Fragment,只能够先跳到指定的activity,在intent中指明你要显示的Fragment, 再在此activity 内,显示这个Fragment。
全部回答
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:
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我的也是ipad连不上wifi 但是我没有找到 忽略
利息款什么时候计入财务费用什么时候计入其他
完美国际现在充值元宝有鸿利元宝返还吗?
百信灯饰这个地址在什么地方,我要处理点事
因工作原因和人发生冲突,在下班途中遭人殴打
宾得k10d相机 怎么用raw键
为什么人类的基因这么少?
新街口有没有比较好的健身房!
杰克货架这个地址在什么地方,我要处理点事
您们是词语吗?
求教全球事务所的问题,都知道会计事务所是四
摩天教育宜章校区这个地址在什么地方,我要处
整个世界哪个国家的人道德水准、国民素质最高
减速机ZQ650-II-3CA的含义
全铝衣柜多少钱一平方 全铝衣柜的优缺点有哪
推荐资讯
成都百胜餐饮集团电话是多少?
Future House和Future Bounce怎么区别
请问爱可以用哪四个字来表达?急急,,,,
怎么让女生为我感情金钱投资,让她此地的离不
正面是光绪元宝广东省造平库重一两,背面是双
求助伯乐imark 酶标仪 Microplate Manager64
肾结石患者可以食用蕃著叶吗
蕾奇尔时尚洗衣怎么去啊,有知道地址的么
gba格式的口袋妖怪漆黑的魅影,金手指代码也
CPU时钟频率越高越好吗?为什么有些AMD的CPU被
航空中是怎么用数字表示速度,高度和方向的??
鑫悦来宾馆这个地址在什么地方,我要处理点事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?