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获取的方法不对吗
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()代码