android - Roman Nurik 的 Wizard pager - 如何访问收集的数据?

标签 android nullpointerexception wizard

我正在尝试使用 Roman Nurik 的库 ( https://plus.google.com/113735310430199015092/posts/6cVymZvn3f4 ) 制作一个向导。

我无法访问从评论 fragment 收集的数据。 我在 ReviewFragment 中公开了 mCurrentReviewItems,然后我这样尝试了

mNextButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {
            ReviewFragment reviewFragment = (ReviewFragment)  mPagerAdapter.getItem(mPager.getCurrentItem());

            for (ReviewItem item : reviewFragment.mCurrentReviewItems)
                Log.d(MainActivity.TAG, "Item: " + item.getDisplayValue());
            }

        } else {
            if (mEditingAfterReview) {
                mPager.setCurrentItem(mPagerAdapter.getCount() - 1);
            } else {
                    mPager.setCurrentItem(mPager.getCurrentItem() + 1);
            }
        }
   }
});

但是它总是空的。

最佳答案

内部 if (mPager.getCurrentItem() == mCurrentPageSequence.size()) { }

对于单页变量:

String data = mWizardModel.findByKey("Sandwich:Bread").getData().getString(Page.SIMPLE_DATA_KEY);

对于自定义页面:

String data = 
mWizardModel.findByKey(THE_KEY).getData().getString(CustomerInfoPage.YOUR_DATA_KEY);

如果要将数据分配回向导,请将其放在 FragmentActivity 中 onCreate 的末尾:

Bundle data = new Bundle();
if (!TextUtils.isEmpty(DATA_STRING)) {
    data.putString(Page.SIMPLE_DATA_KEY, DATA_STRING);
    mWizardModel.findByKey("Sandwich:Bread"").resetData(data);
}

关键“三明治:面包”来自示例,更改任何适合您的内容。千万不要尝试 multi one,我认为它或多或少是一样的。

关于android - Roman Nurik 的 Wizard pager - 如何访问收集的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14765510/

相关文章:

wpf - 如何创建自定义 WPF 安装向导

android - Intent 过滤器不适用于调用屏幕

java - HashMap 和 JSON 查找错误(空引用)

php - Nette 框架 - 表单向导

java - 尝试初始化二维数组时出现 NullPointerException

Java 流 - 在可空列表上进行流式处理的优雅方式

PyQT QWizard - QComboBox 的 userData 上的 registerField 而不是文本或索引?

android - 当蓝牙连接到我的设备时,是否可以在应用程序中收到通知?

java - Android重命名SQLite数据库

android - 将 Set<BluetoothDevice> 转换为 BluetoothDevice[]