我正在構建一個使用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