Fragment与Activity传值的问题

manbas_j 2016-08-23 06:57:10
private void sendString(){
Log.i("test", "sendString");
FragmentManager fm=getSupportFragmentManager();
Fragment findId=fm.findFragmentById(R.layout.fragment1);
Fragment1 fragment1=(Fragment1)findId;
Bundle bundle=new Bundle();
bundle.putString("text", "hello fragment2");
fragment1.setArguments(bundle);

}

这是我Activity里面写的方法


private void getText(){
Log.i("test", "getText");
Bundle bundle=getArguments();
String text=bundle.getString("text");
btn.setText(text);
}
这是我Fragment中写的方法,就是获取Activity传过来的值然后设置为button的text
我的fragment是直接加载在Activity中的ViewPager的
listFragment=new ArrayList<Fragment>();
listFragment.add(new Fragment1());
listFragment.add(new Fragment2());

viewPager=(ViewPager) findViewById(R.id.viewPager);
viewPager.setAdapter(new fragmentPagerAdapter(getSupportFragmentManager()));
viewPager.setOffscreenPageLimit(listFragment.size());
viewPager.setOnPageChangeListener(new pageListener());


然后总是会在Activity的sendString()方法中的fragment1.setArguments(bundle);报空指针的错误
是因为fragment1获取的方法不对吗
...全文
261 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
manbas_j 2016-08-25
  • 打赏
  • 举报
回复
引用 4 楼 shuijinglingsos 的回复:
注意你调用sendString的位置,要等framgment载入后才能调用,否则你找不到fragment就会空引用
有的,我这个sendString()是通过点击事件来调用的 viewPager加载fragment是放在activity的oncreate()中进行的,这样应该在我触发点击事件前fragment已经加载完了的
adfldk 2016-08-25
  • 打赏
  • 举报
回复
贴下onCreate()代码
睡精灵 2016-08-24
  • 打赏
  • 举报
回复
注意你调用sendString的位置,要等framgment载入后才能调用,否则你找不到fragment就会空引用
manbas_j 2016-08-24
  • 打赏
  • 举报
回复
引用 2 楼 adfldk 的回复:
传值只能在同一个fragment里面
在同一个fragment里面那我还要传值干嘛?我上面是在Activity与fragment之间传值
adfldk 2016-08-24
  • 打赏
  • 举报
回复
传值只能在同一个fragment里面
manbas_j 2016-08-23
  • 打赏
  • 举报
回复
还是说用这种方法传值的话Fragment要动态加载到Activity中才可以

80,490

社区成员

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

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