安卓,fragment中启动了另一个activity,怎样得到这个activity的回传值
就是有个fragment,是显示帖子列表的,然后还有一个按钮,按了这个按钮就会启动发帖的activity,当按了发帖按钮之后并成功收到网络传回的发帖成功的消息之后,就会销毁自身,并且传值给fragment,让其刷新帖子列表,但现在问题就在怎样通知fragment刷新帖子列表。

    考虑过回调接口,但是这样首先要调用seton...listener方法,这样要求首先发帖activity要持有fragment的实例,这又带出了新问题......这样要在startactivity的bundle中,fragment把自身传过去,这又要求fragment要序列化,麻烦,我这fragment的逻辑有一定的复杂,未试过是否能够序列化.........因为学习序列化对着示例来做那些待序列化的类都比较简单.....

    也考虑过handler,但是这样也要求在bundle中把handler实例传过去,不知道handler是否实现了parcelable接口或者serialize接口

3个回答

想到怎么做了,我目前用的是LocalBroadcastManager,另外按楼上所说,在fragment里启动了activity,在该fragment依附的activity中覆写onActivityResult方法,里面调用fragment暴露出来的方法就可以,不过个人感觉这是fragment里面干的事,还要牵涉到这个它依附的activity了,感觉封装性是不是不太好?反正我还是用LocalBroadcastManager了

通过startActivityForResult启动新的activity,新的activity关闭前setResult,在原有的activity中重写onActivityResult用来收取关闭时传来的信息
并做相应的逻辑。

qq_35982678
顾念成痴 回复freedom_wings4: 这个有什么区别吗
2 年多之前 回复
freedom_wings4
freedom_wings4 然而我是在fragment中启动Activity,不是从一个activity中启动另一个activity的
2 年多之前 回复

通过startActivityForResult启动新的activity,新的activity关闭前setResult,在原有的activity中重写onActivityResult方法,来接收传回来的信息

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
activity向另一个activity中的fragment传值
在学习和项目运用中会用到activity想另一个activity中的fragment传值,在网上看了很多前辈的帖子,自己总结写了个传值方式。举个例子,在一个商场的app中,主界面中嵌套了4fragment,中有一个是个人中心,点击个人中心的登录按钮跳到登录界面,在吧登录界面的用户名传回个人中心,有很多地方都会运用到,当然解决方法也有很多,比如把登录信息直接存到SharedPreferences中再到
安卓中实现Activity向Fragment传值
1.写主布局文件,有一个输入框,发送按钮,用来放Fragment的LinearLayout     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:orie
从activity向另一个activity中的fragment传值
例如我有两个activity1,和activity2 其中activity2有一个fragment 我通过intent从activity1跳转到activity2,如何把activity1中的值传到activity2中的fragment中呢 求具体代码 我试过在1中声明bundle然后用setArgument 然后在fragment中getArgument 但是还是报错 还是应该从2中setArgument?不太清楚 求指教
关于fragment跳转activity的回传值问题
fragment跳转activity之后,activity处理后的数据返回原fragment,怎么得到这个值,我头疼了半天,最后终于搞出来了!因为是初学者,代码有点啰嗦,但道理很简单。话不多说,直接贴代码: 这是mainactivity: import android.content.Intent; import android.os.Bundle; import android.
Fragment与Activity之间的传值
一、Activity传值给Fragment 1.方法一:(Fragment是动态加载的)在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收 activity : MyFragment fragment = new MyFragment();...
Activity与Fragment之间的传值
Activity加载Fragment时的值传递的方式: (1)Activity中的值传递给Fragment (2)Fragment中的值传递给Activity (3)Fragment中的值传递给Fragment 下面我们就详细的说明以下每种方式的传递值: 1、Activity中的值传递个Fragment    建议的传值方式是通过Bundle来传递,而不是直接作为Fragment的构造
activity与fragment传值
[code=java]public class MainPersonalInformationFragment extends Fragment implements OnClickListener rn private MainMessageFragment mmf=new MainMessageFragment();rn private TextView tv_county,tv_city,tv_birth,tv_constellation;rn @Overridern public View onCreateView(LayoutInflater inflater, ViewGroup container,rn Bundle savedInstanceState) rn View view=inflater.inflate(R.layout.personal_homepage_activity, null);rn rn tv_county=(TextView) view.findViewById(R.id.tv_county);rn tv_city=(TextView) view.findViewById(R.id.tv_city);rn tv_birth=(TextView) view.findViewById(R.id.tv_birth);rn tv_constellation=(TextView) view.findViewById(R.id.tv_constellation);rn rn ivInterest.setOnClickListener(this);rn rn rn return view;rn rn rnrn @Overridern public void onResume() rn // TODO Auto-generated method stubrn super.onResume();rn Intent intent=getActivity().getIntent();rn Bundle bundle=intent.getExtras();rn String county=bundle.getString("county");rn rn if(county==null)rn return;rn tv_county.setText(county);rn System.out.println("ShawnX onResume");rn rn[b][code=java][/code][/b]rn @Overridern public void onClick(View view) rn switch (view.getId()) rnrn case R.id.tv_county:rn Intent intent=new Intent(getActivity(),DiQuDialogActivity.class);rn startActivity(intent);rn rn break;rn default:rn break;rn rn rn[/code]rnrn这个fragment有一个textview 点击后跳到,DiQuDialogActivityrn[img=https://img-bbs.csdn.net/upload/201701/13/1484290383_251590.png][/img]rn[code=java]public class DiQuDialogActivity extends Activity rn private PickerView pv_county;rn private String[] county="中国","台湾","香港";rn @Overridern protected void onCreate(Bundle savedInstanceState) rn super.onCreate(savedInstanceState);rn setContentView(R.layout.di_qu_dialog);rn // 设置Dialog背景透明度rn WindowManager.LayoutParams lp = getWindow().getAttributes();rn lp.dimAmount = 0.75f;rn getWindow().setAttributes(lp);rn getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);rn rn pv_county = (PickerView) findViewById(R.id.pv_county);rn List data = new ArrayList();rn for (int i = 0; i < county.length; i++)rn rn data.add(county[i]);rn rn rn pv_county.setData(data);rn pv_county.setOnSelectListener(new onSelectListener()rn rn rn public void onSelect(String text)rn rn Intent intent=new Intent(DiQuDialogActivity.this,MainPersonalInformationFragment.class);rn Bundle bundle=new Bundle();rn bundle.putString("county", text);rn intent.putExtras(bundle);rn startActivityForResult(intent,0);rn Toast.makeText(DiQuDialogActivity.this, "选择了 " + text + " 分",rn Toast.LENGTH_SHORT).show();rn rn );rn rn rn @Overridern public boolean onCreateOptionsMenu(Menu menu)rn rn getMenuInflater().inflate(R.menu.main, menu);rn return true;rn rnrn[/code]rn这个ativity中选一个能在上面那个fragment中显示 怎么传值
Activity和Fragment之间的传值
在MainActivity中设置值,在ContentFragment中接受值: 在MianActivity中写: ContentFragment contentFragment = new ContentFragment();   Bundle args = new Bundle();   args.putString("content", "你好");   conten
Activity与Fragment的相互传值
登录界面——&amp;gt;主界面(嵌套了一个一级fragment,通过tabhost实现跳转,类似于微信主界面)——&amp;gt;一级Fragment里面嵌套了三个二级Fragment,通过viewpager滑动——&amp;gt;二级Fragment里面有点击事件,点击可跳转到新的Activity...大致是下面这个样子的,如何在登录界面获取用户ID一级一级传下去?大神来教我 啊------------------...
Fragment和Activity的传值方法
public static MyOrderListFragment getInstance(String orderStatus) { MyOrderListFragment fragment = new MyOrderListFragment(); Bundle bundle = new Bundle(); bundle.putString("OrderStatus",
Activity回传值
Activity回传值实例代码,可以在eclipse中运行
Activity的 回传值
a:传值Intent intent = new Intent(this,secondActivity.class); String text =editText.getText().toString(); intent.putExtra(Intent_key,text);//a传b在此处写你传的值 startActivityForResult(inte...
activity之间回传值
从MainActivity打开AActivity, 在MainActivity中接收从AActivity回传 的数据"aa","bb" 一.在 MainActivity 中用startActivityForResult的打开代码 btnSend =(Button) findViewById(R.id.btnSend ); btnSend .setOnClickListene
fragment怎样跳转到另一个activity中?
在fragment中点击按钮进入其他的activity中,哪位大神告诉怎么做啊!!![img=https://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/onion/3.gif][/img]
安卓学习之路之Fragment和Activity之间的传值
一:利用Fragment的 setArguments(bundle)的方法,把bundle的对象传到Fragment的类中; 二:在Fragment的类中利用 getArguments()的方法得到Bundle的对象, 三:得到Bundle对象的值; 具体的代码如下: String s= et1.getText().toString().trim(); Fragme
ANDROID安卓activity与fragment,activity之间互相传值(二)
本文主要讲述activity与fragment之间互相传值。 首先,activity往fragment中传值,有很多时候是不需要的,因为activity持有fragment的对象,或者控件,方法就可以直接调用,也可以根据传参给传值,这都是比较简单的但是,对于一些比较不同的情况可能需要传值,这个怎么解决呢,下面直接上代码。 这是SendActivity的代码 public class
ANDROID安卓activity与fragment,activity之间互相传值(三)
这篇,主要写的是,fragment与fragment直接的互相传值,互相通信,fragment必须依赖于activty,而activity用来管理fragment是通过fragmentManager来管理的,所以这样一来,用来传值互相通信的方便就变得非常明了了。 下面直接来看具体的CODE。 需要在LeftFragment中修改RightFragment中的TextView的值 RightF
ANDROID安卓activity与fragment,activity之间互相传值(一)
其实一直以来想写一点东西,但是项目都很赶,很有什么时间,但是今天公司换好新地址了,所以比较有感触,就决定来写一些东西,比较一下开始。 先说一下activity之间为什么要传值,因为在我们开发的过程中,每个界面活动之间都是有关联的,所以这些关联一般靠什么来维持,比较常用的就是传值了,传值有什么好处呢,就是不用调用 存储,安卓自带的引用存储,也就是GC机制中,只要你持有引用,是不会被内存所自动清除
ANDROID安卓activity与fragment,activity之间互相传值(四)
之前,关于传值出了三篇文章,但是忽略了一个至关重要的内容,也是传值中很常用的一个,就是回掉传值activity的启动回掉,方法,这个传值在界面通信之间起着至关重要的作用,下面直接看代码 FirsrActivity中 Intent intent = new Intent(FirsrActivity.this,SecondActivity.class); startActivityForRes
在Activity或者Fragment中刷新另一个Activity或者Fragment
1、使用广播 在Activity的onCreate()或者Fragment烦人onAttach()中注册广播,然后记得在onDestroy中解注册广播。这样在需要刷新的地方直接发送广播就可以了。public class GasFragment extends Fragment { private TextView gasName; private TextView gasa
通过startActivityForResult方法来得到Activity的回传值
通过startActivityForResult方法来得到Activity的回传值 在一些情况下,我们通过 A activity跳转到 B activity上,这时希望 A activtiy能从 B activity上得到一些返回值,这个时候我们就不能使用startActivity方法了,而是使用 startActivityForResult方法来完成我们的操作。 例如,我们希望完成下
安卓的Activity 之间的传值
安卓的Activity 之间的传值activivity_main.xml<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
个人总结Activity,fragment传值
最常见的是 Activity之间传值: //传值的Activity               Intent intent=new Intent();               intent..putExtra("key","你要传过去的值");               startaActivity(intent); //接受端的Activity              Int
Activity向fragment传值的问题
我用了ActionBar.TabListener 来实现fragment的切换 ,但是用main_Activity向fragment传递数据时就会报空指针错误[使用的是setArguments(bundle); 方法]、 如果我注释掉ActionBar.TabListener来初始化fragment 而直接用transaction.replace(android.R.id.content, nowFragement,"now");则正确执行... 不知道该怎么办 Activity向fragment传值还有其他方法吗?rnrn[code=java]rnrn//添加tab选项rn rn Tab tab=actionBar.newTab().setText("当前天气")rn .setTabListener(new TabListener(activity,"now" , NowFragement.class));rn actionBar.addTab(tab);rn rn tab=actionBar.newTab().setText("未来天气")rn .setTabListener(new TabListener(activity, "future", FutureFragement.class));rn actionBar.addTab(tab);rn rn tab=actionBar.newTab().setText("出行建议")rn .setTabListener(new TabListener(activity, "suggestion", SuggestionFragement.class));rn actionBar.addTab(tab);rn rn[/code]rnrnrnrn[code=java]rnrnNowFragement nowFragement=new NowFragement();rn Bundle bundle=new Bundle();rn rn// //bundle.putSerializable("nowinfo", weather);rn bundle.putString("user", "城市");rn nowFragement.setArguments(bundle);rn transaction.replace(android.R.id.content, nowFragement,"now");rn rn transaction.commit();rnrnrnpublic TabListener(Activity activity,String tag,Class clz)rn mActivity=activity;rn mtag=tag;rn myclass=clz;rn rn rn rn @Overridern public void onTabSelected(Tab tab, FragmentTransaction ft) rn // TODO Auto-generated method stubrn // Check if the fragment is already initializedrn if(mFragment==null)rn mFragment=Fragment.instantiate(mActivity, myclass.getName());rn ft.add(android.R.id.content, mFragment, mtag);rn rn elsern ft.attach(mFragment); //// If it exists, simply attach it in order to show itrn rn rnrnrn[/code]
Android之Activity和Fragment传值_网易
Android基础入门视频培训课程,该教程内容涵盖Android入门开发基本技能(环境搭建、Lineralayout、RelativeLayout、Button事件、Activity、启动模式等)、自定义控件(Handler、BroadCastReceiver、Notification、AlertDialog)、数据存储、网络开发(HttpClient)、android异步开发等。
Activity 和 Fragment 传值的一种方法
    在android学习中经常需要在Activity 和 Fragment 传值,目前比较流行的主流方法是使用Bundle进行传值具体的方式如下:startActivityForResult 和 setResult(RESULT_CANCELED, this.getIntent().putExtras(bundle)); //把Activity设置好值返回Fragment在Frament在设置...
activity与fragment通过startActivityForResult传值
这是activity向另一个activity中的fragment传值,传值方式是通过startActivityForResult来传值
Fragment与Activity间的传值通讯
此文,仅做为个人学习Android,记录成长以及方便复习!1.配置一下界面,使用RadioGroup实现底部导航栏,其中的4个按钮,本次是只使用传值通讯一个按钮!activity_main.xml&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt; &amp;lt;RelativeLayout xmlns:android=&quot;http://schemas.android....
activity和fragment之间的简单传值
第一种就是在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收, 具体代码如下      activity: FragmentTransaction ft=fm.beginTransaction(); OneFragment oneFra
Fragment与Activity之间的传值和接口回调
首先创建一个activity和一个fragment 把fragment与activity之间建立连接在fragment里面写个接口public class MyFragment extends Fragment { private View view; private Button fr_btn1; private Button fr_btn2; private Bu
(Activity与Fragment之间进行传值
Activity与Fragment之间进行传值,相关博文:http://www.cnblogs.com/tianzhijiexian/p/3888330.html
fragment传值给activity:接口
步骤1、fragment中定义接口,并设置数据2、activity实现接口示例:FragmentA :发送方 public class FragmentA extends Fragment { private EditText et; private FragmentACallBack fragmentACallBack; public interface FragmentACa
Activity之间的跳转和回传值
Activity之间的跳转   (1)startActivity(intent);     //创建一个intent对象     Intent intent = new Intent();     //指定将要启动的Activity     intent.setClass(MainActivity.this, SecondActivity.class);     startActivi
Fragment向另一个Fragment进行传值通过Activity来传递在同一个Activity中
今天我们来探讨Fragment向另一个Fragment 进行传值。如何传?网上有说用接口等方法,今天我们用Activity来传递。 首先我们理一下思路。现在我有一个Fragment1    Fragment2   MainActivity.      我现在的需求是  Fragment1里面有一个广播接收者  接收到一个字符串,那么我要把这个字符串的值传递到Fragment2.   那现在我们
在Activity中关闭另一个Activity
1.对于简单的两个Activity public class A_activity extends Activity { public static A_activity _instance = null; @Override protected void onCreate(Bundle savedInstanceState) {...
动态创建Fragment、Activity和Fragment之间传值
本来想通过构造方法给fragment传值,不过后来知道,google是不予许给frament创建有参数的构造方法的。那么下面我们就来学习如何使用setArguments()和getArguments()来实现传值吧,同时学习怎样动态的创建frament。 首先我们需要做一些准备工作 1、创建一个fragment作为模板 public class BlankFragment e...
安卓在Activity中获取Fragment中的控件
安卓在Activity中获取Fragment中的控件,这个需求很少用到,但在做项目的过程中,遇到了。其实也很简单: ``` 首先在Activity中实例化Fragment ExampleFragment exFragment = (Fragment)getFragmentManager().findFragmentById(fragmentID); 然后获取Fragment中的控件
Fragment与Activity之间传值,Fragment与Fragment传值以及对commit的理解
fragment一和activity产生关系就会被初始化也就是说fragment方法会被走一遍       若想在点击条目的时候通过setarguments 传值必须在事务提交此fragment之前setarugments        否则会报空指针因为getarguments找不到值所以可通过方法回调来传值    另外,也可通过在点击条目的      时候调用activity中的方法
Intent启动activity 传值和回传值
Intent 的用法大致可以分为两种,显式Intent 和隐式Intent第一种Intent intent= new Intent(MainActivity.this,NextActiviity.class); //分散传值 intent.putExtra("name","jack"); intent.putExtra("age",23); intent.putExtra("address","北京
从一个Activity向另一个Activity中的Fragment传递参数
可以使用startActivityForResult来传递参数 代码片段: 传递参数的Activity:Intent intent = new Intent(); intent.putExtra("text",search); ShopSearchActivity.this.setResult(RESULT_OK,intent); finish();接收数据的FragmentI
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法