android - 使用 Roman Nurik 的 Wizard Pager 示例,如何在后面的页面中访问前面页面的数据?

标签 android android-fragments android-viewpager wizard

请原谅我缺乏经验,我正在慢慢自学编程。

我已经实现了 Roman Nurik's Wizard Pager model在我的应用程序中,获取用户的手机型号和耳机类型。然后我想使用第三页上的这两个结果查询数据库...

我有一个数据库查询方法(它在我的 WizardModel 类(示例中的 SandwichWizardModel)中),此时将每个条目返回到我的数据库,并将其放入 ListView 中以供选择。我希望能够调整此方法以从第 1 页和第 2 页中获取字符串来查询数据库并在第 3 页上找到匹配项。

我得到了以下建议:

mWizardModel.findByKey("TITLE_OF_YOUR_PAGE").getData().getString(YourPage.YOUR_FIELD_DATA_KEY)

这在我的代码中等同于:

mWizardModel.findByKey("Phone Model").getData().getString(SingleTextFieldPage.SIMPLE_DATA_KEY);

但我无法解决的是如何获取 mWizardModel 的实例。我尝试了各种方法,但我得到了一个空对象异常。感觉这可能与非 Activity 类中的上下文有关,我也尝试了一个新的 Activity :

public class Test extends Activity {

HearingTestWizardModel mWizardModel = new HearingTestWizardModel(getApplicationContext());
String testOut;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.testice);

    testOut = mWizardModel.findByKey("Phone Model").getData().getString(SingleTextFieldPage.SIMPLE_DATA_KEY);


    Log.i("The results from before are: ", testOut);
}

但我对此并不走运。如何创建 mWizardModel 的实例,以便我可以从中调用数据?

如果我需要提供更多详细信息,请询问。使用的示例代码在这里:https://github.com/romannurik/Android-WizardPager

最佳答案

WizardPager 不是为您想要的而构建的。您需要将您的输入汇集到 3. 页面。您可以使用 SharedPreferences 来做到这一点。请注意 WizardPager 总是在显示前加载下一页。因此,您必须弄清楚您的页面何时对用户真正可见。

你可以在你的 fragment 中使用这段代码来做到这一点:

@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
    super.setUserVisibleHint(isVisibleToUser);
    if (isVisibleToUser) {
        if (getView() != null) {
            // load data from page 1&2
            refreshView(getView());
        }
    }
}

关于android - 使用 Roman Nurik 的 Wizard Pager 示例,如何在后面的页面中访问前面页面的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27357823/

相关文章:

java - GSON JsonSyntaxException 反序列化 Java 日期对象

android - React Native Android : screenPhysicalPixels. 宽度未定义

Android Picasso 处理方向改变

android - 仅在一个 ActionBar Tab 内的 fragment 之间的事务

android - Fragment 中的 FragmentPagerAdapter

java - Android 辅助功能 com.android.settings :id/left_button about force stop not work

java - 无法在 UserRecyclerAdapter 类中使用 "custom_list_users.xml"来膨胀 fragment

java - 如何从底部导航 fragment 移动到其他 fragment

java - 使用 FragmentStatePagerAdapter 通过 ViewPager 保留 fragment 的位置

android - 如何确定 Fragment 何时在 ViewPager 中可见