Fragment与Activity传值的问题

Android 码拜 8年前 (2016-09-12) 1172次浏览
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获取的方法不对吗
解决方案

30

注意你调用sendString的位置,要等framgment载入后才能调用,否则你找不到fragment就会空引用

10

贴下onCreate()代码

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Fragment与Activity传值的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)