2 u010208471 u010208471 于 2016.09.23 08:14 提问

Fragment怎么把数据传到Activity里面

Fragment怎么把数据传到Activity里面,在Fragment里面用定义接口的方法总是报ClassCastException

3个回答

lyw147258
lyw147258   2016.09.23 08:46

用接口回调,在Fragment中设置数据,在Activity中通过接口拿到数据

u011249920
u011249920   2016.09.23 09:32

Fragment与Activity之间交换数据的方式:
1 Activity向Fragment传递数据
fragment.setArguments(bundle)

2 Fragment向Activity传递数据
在Fragment内部定义一个回调接口.让包含该Fragment的
Activity实现该接口.这样Fragment就可调用该回调方法
将数据传给Activity

ClassCastException是指类转换异常。出现这个异常的原因如下:
一个类是数字类,而由于误操作,错误的将数字类向数字类转换改写成了数字类向字符串类的转换,从而产生了异常。
强制转换时发生了这个异常。
你这个报错的详细信息最好贴出来看下

weekendboyxw
weekendboyxw   2016.09.23 16:37

第一步
public interface ToActivityListener {
void toActivity(int action);

void toActivity(int action, MessageSummaryBack back);

}
第二步activity实现这个方法
TabHomeActivity extends FragmentActivity implements ToActivityListener
第三步 Fragment内初始化的时候设置activity传递过来的listener
ToActivityListener listener=null;
public HomeFragment(ToActivityListener listener) {
// TODO Auto-generated constructor stub
super();
this.listener=listener;
}
第四步
在acitivty中 new一个Fragment的时候将listener传递过去
homeFragment = new HomeFragment(this);

Csdn user default icon
上传中...
上传图片
插入图片