Articles of fragmentstatepageradapter

使用FragmentStatePagerAdapter时刷新片段视图

似乎之前讨论过刷新问题,但没有一个解决方案适合我。 我想要做的是:我正在使用FragmentStatePagerAdapter。 适配器的每个位置都包含一个片段,该片段具有象状外观的线性布局,每个单元格由CheckedTextView表示。 并且应该监听点击并且删除单元格上的先前选择并进行新选择的监听器。 什么工作:每个片段都正确加载所有数据/默认状态(片段加载到列表中时计算) 当我单击一个单元格时,保存的单元格列表中的所有状态都被正确获取,我可以在调试时更改代码中的状态更改。 同时我为CheckedTextView指定一个表示单元格的新状态。 这设置如下: CheckedTextView cellView = (CheckedTextView) GridRow.getChildAt(c); cellView.setSelected(false); cellView.setChecked(false); cellView.setTag(cellsChess.get(i).get(c)); 问题:即使正确存储和分配了值,也无法刷新视图,视图中单元格的值不会更新。 我试过的提示没有用: 1。调用adapter.notifyDataSetChanged:只有在我们被覆盖时才能使用FragmentStatePagerAdapter调用: @Override public int getItemPosition(Object object){ return POSITION_NONE; } 2.为DestroyItem添加Overriden方法,并将片段添加到getItem上的Map: 这是不合适的,因为我正在使用FragmentStatePagerAdapter,因此使用此pagerAdapter的整个目的将消失。 3.调用invalidate:这不适合这种情况,我需要实时刷新。 4. instantiateItem()中的setTag()方法:我不认为这种情况适合。 引用的线程: 在恢复活动时刷新FragmentStatePagerAdapter上的图像 ViewPager PagerAdapter未更新视图 动态更新ViewPager? notifyDataSetChanged无法更新ListView 我试图尽可能清楚地说明我的问题,如果有人需要更多澄清,请问。 紧急回复将受到高度赞赏, 干杯 ****更新***** 我使用的是ViewPagerIndicator,而不是默认的ViewPager。

FragmentStatePagerAdapter没有调用getItem

问题:我有一个带有FragmentStatePagerAdapter的ViewPager设置,它使用全局arraylist来获取其片段的内容。 当我想更新这个全局数组时,我只需调用arraylist.add()方法,实例化一个新的FragmentStatePagerAdapter和一个新的ViewPager。 但是,由于某种原因,适配器根本没有调用getItem。 并不是说它的数据集是空的(它不是)或任何东西……它根本就没有被调用。 我甚至设置了一个日志来测试它。 这是我的代码: // Create the adapter that will return a fragment for event SectionsPagerAdapter adapter = new SectionsPagerAdapter(getFragmentManager()); // Set up the ViewPager with the sections adapter. ViewPager pager = (ViewPager) findViewById(R.id.pager); pager.setAdapter(adapter); /** * A FragmentStatePagerAdapter that returns a fragment corresponding to * an index of the global events array […]

Android – 尝试在空对象引用上调用虚方法’void android.support.v4.app.Fragment.setMenuVisibility(boolean)’

以下是错误的完整堆栈跟踪: http : //pastebin.com/5dQHkUw3 只有在我开始在项目中使用片段后才会出现错误,因为我想提供JSON提要。 在我创建Tabs,NavigationDrawer等之前很好。 MainActivity.java 公共类MainActivity扩展ActionBarActivity实现MaterialTabListener { private Toolbar mToolbar; private NavigationDrawerFragment mDrawerFragment; private DrawerLayout mDrawerLayout; private MaterialTabHost mTabHost; private ViewPager mViewPager; public static final int SERVICES_ALL = 1; public static final int SERVICES_FEATURED = 2; public static final int SERVICES_NEW = 3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main_appbar); mToolbar = […]

重新加载中间片段时,Android FragmentStatePagerAdapter返回空白屏幕

我正在尝试使用FragmentStatePagerAdapter和ViewPager创建一个包含4个选项卡的应用程序。 当我第一次运行应用程序,如果我按顺序选择选项卡(0到3)一切顺利,然后如果我尝试执行回来的方式(3到0)选项卡1显示一个空白屏幕,如果,在那之后,我选择选项卡2,然后也是空白,如果我转到选项卡0并再次执行选项卡2恢复生命,有时选项卡1返回生活但我没有find任何序列… 我知道这是一团糟…事情是标签1使用失败,标签2失败一些,标签0和3总是工作正常。 如果我交换片段的位置一切都是一样的,我认为有些与片段代码无关…… logcat中没有显示错误,调试碎片显示一切都按照应该的方式进行… 我已经有几天试图修复它没有运气(很明显……),我试图覆盖getItemPosition()以返回POSITION_NONE,我试图让我自己的FragmentStatePagerAdapter像这里说http:// speakman .net.nz / blog / 2014/02/20 / a-bug-in-and-a-fix-for-way-fragmentstatepageradapter-handles-fragment-restoration / but nothing …还有一些东西可以避开对我有用。 一些代码: 主类 public class Main extends FragmentActivity implements ActionBar.TabListener { private MyPageAdapter mPagerAdapter; private ViewPager mPager; @Override protected void onCreate(Bundle si) { super.onCreate(si); setContentView(R.layout.activity_main); init(); } private void init() { final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); if […]

在FragmentStatePagerAdapter中保存/更新Fragment的EditText数据

介绍 我有一个Book的活动,其中包含一个types为“page”的arraylist,并处理我决定使用FragmentStatePagerAdapter的所有页面,其中我的一个片段包含一个页面。 我为寻呼机中的每个片段和父活动之间的通信创建了一个接口。 我在这个接口中需要的方法是更新一个片段中显示的页面,所以我为父活动制作了工具,用于从片段接收​​数据的接口并将它们存储在页面中以保存在arraylist中。 每个片段都有一个EditText,用户可以在其中编写,我设置addTextChangedListener来捕获用户停止写入的时刻。 当用户停止在EditText中写入时,在onTextChanged()中,我调用activity activity中实现的函数。 这是我的活动代码 public class BookEditorActivity implements BookEditorFragment.EditorFrToEditorActInterface { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.book_editor_activity); Bundle extras = getIntent().getExtras(); b = (Book) extras.get(“book”); setBookViewPager(b); } private void setBookViewPager(Book b) { mBookViewPager = (ViewPager) findViewById(R.id.book_editor_pager); mBookViewPagerAdapter = new BookViewPagerAdapter(getSupportFragmentManager(), b); mBookViewPager.setAdapter(mBookViewPagerAdapter); } @Override public void saveBookPageTextContent(String textContent) { int […]

ReclerView里面的ViewPager作为行项目

我需要在RecyclerView中有一个ViewPager(类似于水平图库),它垂直显示一个列表。 RecyclerView的每一行都有一个ViewPager,允许在某些图像之间滑动。 ViewPager还将支持将传播到父RecyclerView的点击事件。 目前,我有以下实现: 列表适配器: @Override public void onBindViewHolder(MyHolder holder, int position) { super.onBindViewHolder(holder, position); Item listItem = get(position); … GalleryAdapter adapter = new GalleryAdapter(getActivity().getSupportFragmentManager(), item.mediaGallery); holder.imageGallery.setAdapter(adapter); … } 图库适配器: public class GalleryAdapter extends FragmentStatePagerAdapter { private final List mItems; @Bind(R.id.gallery_item) ImageView galleryView; public SearchResultsGalleryPagerAdapter(FragmentManager fm, @NonNull ArrayList mediaGallery) { super(fm); mItems = mediaGallery; } […]

来自FragmentStatePagerAdapter的getResources

在活动类中,我有这个类(来自android示例): public static class DemoCollectionPagerAdapter extends FragmentStatePagerAdapter { public DemoCollectionPagerAdapter(FragmentManager fm) { super(fm); } @Override public Fragment getItem(int i) { Fragment fragment = new QuestionFragment(); Bundle args = new Bundle(); args.putInt(QuestionFragment.ARG_OBJECT, i ); fragment.setArguments(args); return fragment; } @Override public int getCount() { return questionList.length; } @Override public CharSequence getPageTitle(int position) { return “Title n°” + […]

从FragmentStatePagerAdapter填充的ViewPager中删除所有片段

我有一个ViewPager,我使用FragmentStatePagerAdapter填充片段(表示来自arrayListOfObjects的对象)。 一切顺利: mMyFragmentPagerAdapter = new fragmentAdapter(getSupportFragmentManager(),orientation ,rePopulatedfireInfoList); mPager = (ViewPager)findViewById(R.id.fireInfoFragment_container); initButton(); setTab(); mPager.setAdapter(mMyFragmentPagerAdapter); 片段适配器扩展了FragmentStatePagerAdapter。 从主要活动开始,我发起一个对话主题活动; 用户可以添加新的collections位置,创建一个新对象,改变主要活动传递的对象的arraylist。 这是启动对话活动的代码; 一切正常: Intent locationIntent = new Intent(afisController.this, locationActivity.class); locationIntent.putExtra(“firesList”, new fireInfoListWrapper(arrayListOfObjects)); startActivityForResult(locationIntent,1); 浮动活动将对象添加到arrayListOfObjects中。 在主要活动的onActivityResult上,我将我收到的arraListOfObjects与我发送的那个进行比较; 如果不同,我想完全删除viewPager的内容并使用新的arrayListOfObjects重新创建它。 这是onActivityResults: protected void onActivityResult(int requestCode, int resultCode, Intent data) { Toast.makeText(this, “Activity Results fired…” , 1500 ).show(); if ((resultCode == 0) && (data != […]

Android:ViewPager FragmentStatePagerAdapter获取当前视图

问题 :如何获取ViewPager FragmentStatePagerAdapter的当前视图? 我花了将近24小时的时间在这里寻找合适的解决方案。 获得当前的位置很容易,我已经知道了。 这是获取当前视图 。 FragmentStatePagerAdapter是必需的,而不是PagerAdapter 。 此解决方案通过instantiateItem(View container, int position)建议setTag和findViewWithTag 。 这适用于PagerAdapter。 但是在FragmentStatePagerAdapter , instantiateItem有一个ViewGroup参数而不是 View param: instantiateItem(**ViewGroup** container, int position) 所以我希望这不是不可能的,不是吗? 请帮忙!

显示的ViewPager第一个片段与FragmentStatePager总是错误的

我正在尝试使用与PlayStore 5.1.x相同的view pager + tabs设计。 这是我的布局: 我的适配器: public class MainPagerAdapter extends FragmentStatePagerAdapter { private ArrayList fragments; public MainPagerAdapter(FragmentManager fm) { super(fm); // TODO Auto-generated constructor stub fragments = new ArrayList(); } @Override public Fragment getItem(int position) { // TODO Auto-generated method stub if(position < getCount()) { FakeFragment fragment = FakeFragment.newInstance(position); fragments.add(fragment); } return fragments.get(position); } […]