数据集耗尽时的FragmentStatePagerAdapter

时间:2014-08-25 22:38:36

标签: android

我有一个由问题的arraylist支持的FragmentStatePagerAdapter。当问题得到解答时,它们将被删除。一切都很好,但我想在问题完成时显示不同的信息。有没有办法在FragmentStatePagerAdapter中执行此操作?

提前谢谢!

1 个答案:

答案 0 :(得分:0)

看起来很简单。如果列表为空,请确保getCount()始终返回1,如果问题列表为空,则显示空片段。请在删除问题后致电notifyDatasetChanged()

class QuestionsAdapter extends FragmentStatePagerAdapter {
    private final List<Question> mQuestionsList;

    QuestionsAdapter(FragmentManager fm, List<Question> questionsList) {
        super(fm);
        mQuestionsList = new ArrayList<>(questionsList);
    }

    @Override
    public Fragment getItem(int i) {
        if (mQuestionsList.isEmpty()) {
            // Return your special Fragment if the list is empty
            return EmptyQuestionsFragment.newInstance();
        } else {
            // Otherwise, business as usual
            return QuestionsFragment.newInstance(mQuestionsList.get(i));
        }
    }

    @Override
    public int getCount() {
        // Always return 1 item, even if the list is empty.
        return Math.max(1, mQuestionsList.size());
    }
}