我正在构建一个使用Viewpager和FragmentStatePagerAdapter的应用程序。 FragmentStatePagerAdapter获取后来用于将每个对象数据映射到片段的对象数组。Android ViewPager FragmentStatePagerAdapter问题
适配器将3个片段加载到内存中(当我在页面上时,onCreateView被调用3次),它加载当前片段和接下来的两个片段。
我有以下问题:
我必须改变一个片段的基于当前片段我在内容的改动内容
我试图修改的数组FragmentStatePagerAdapter,然后调用适配器上的notifydatasetchanged,但适配器不会再次加载下一页。
什么是最好的方法来解决这个问题?
一些代码和场景: 我所在的当前片段包含用户数据,记录的用户可以关注他或取消关注。
这里是的onClick代码:
if(mListener!=null)
mListener.onTweetUserFollowingStatusChanged(tweet.getUser());
的听众从与的ViewPage活动回调:
@Override
public void onTweetUserFollowingStatusChanged(User user) {
DataManager.getInstance().onTweetUserFollowStatusChanged(user);
List<Tweet> affectedTweets = mPagerAdapter.getTweetsWithUser(user);
for (Tweet affectedTweet: affectedTweets
) {
boolean affectedTweetCurrentUserFollowStats = affectedTweet.isFollowingTweetUser();
affectedTweet.setFollowingTweetUser(!affectedTweetCurrentUserFollowStats);
}
mPagerAdapter.notifyDataSetChanged();
}
下一个页面containes同一用户。
所以,如果我跟着他走了短路电流页我想从下一页的后续按钮显示“取消关注”
发布您的代码,您的尝试 –
您可以尝试片段的setArgument()方法。 Bundle name = new Bundle(); name.putCharSequence(“Your KEY”,“Your Value”); fragment.setArguments(name); –
我已经这样做了在适配器中实例化片段 – Heixss