大佬教程收集整理的这篇文章主要介绍了android – 从ViewPager中的Activity更新片段,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_419_7@我正在使用包含TextView的片段,而我正在使用同@L_112_3@myFragment类的5个实例.
@H_419_7@在活动中,我有一个按钮和一个ViewPager,我需要按钮来更新所有片段实例内容,无论何时单击它.@H_419_7@这是活动
@H_419_7@
public class MainActivity extends FragmentActivity { final static String[] CONTENT = {"a","b"}; ViewPager pager; @Override public void onCreate(Bundle savedInstanceStatE) { super.onCreate(savedInstanceStatE); setContentView(R.layout.activity_main); List<MyFragment> fragments = new Vector<MyFragment>(); for(int i = 0; i < 5; i++){ MyFragment fragment = new MyFragment(CONTENT); fragments.add(fragment); } PagerAdapter adapter = new PagerAdapter(this.getSupportFragmentManager(),fragments); pager = (ViewPager) findViewById(R.id.viewpager); pager.setAdapter(adapter); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { //method that isn't working PagerAdapter adapter = (PagerAdapter)pager.getAdapter(); for(int i = 0; i < 5; i++){ MyFragment fragment = (MyFragment) adapter.getItem(i); fragment.textView.setText(fragment.content[1]); } } }); } }@H_419_7@碎片 @H_419_7@
public class MyFragment extends Fragment{ String[] content; TextView textView; public MyFragment(String[] content) { this.content = content; } @Override public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceStatE) { View view = inflater.inflate(R.layout.fragment_content,container,falsE); textView = (TextView) view.findViewById(R.id.textView1); textView.setText(content[0]); return view; } }@H_419_7@和FragmentPagerAdapter @H_419_7@
public class PagerAdapter extends FragmentPagerAdapter{ List<MyFragment> fragments; public PagerAdapter(FragmentManager fm,List<MyFragment> fragments) { super(fm); this.fragments = fragments; } @Override public Fragment getItem(int arg0) { return fragments.get(arg0); } @Override public int getCount() { return fragments.size(); } }@H_419_7@每当我尝试从适配器访问一个小于adapter.getCurrentItem() – 1或大于adapter.getCurrentItem()1的片段时,OnClick方法会给我一个NullPointerException. @H_419_7@有关如何同时更新所有片段的任何想法?
@H_419_7@提前致谢.
@H_419_7@
pager.setOffscreenPageLimit(4); // you have 5 elements@H_419_7@您仍然可以使用我的注释中的方法onPageScrollStateChanged(因此更新将在用户开始滑动的那一刻开始)以查看用户何时开始滑动寻呼机并将片段更新到当前可见的左侧和右侧片段,但这有点难以正确,所以我建议使用第一个选项. @H_419_7@如果嵌套片段类,则将其设置为静态,这样就不会将其绑定到活动对象.
@H_419_7@如果需要将数据传递给Fragment,可以使用如下所示的创建方法:
@H_419_7@
public static MyFragment newInstance(String text) { MyFragment f = new MyFragment(); Bundle b = new Bundle(); b.putString("content",text); f.setArguments(b); return f; }@H_419_7@使用getArguments().getString(“content”);可以在MyFragment中使用该文本.
以上是大佬教程为你收集整理的android – 从ViewPager中的Activity更新片段全部内容,希望文章能够帮你解决android – 从ViewPager中的Activity更新片段所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。