如何将Roman Nuriks Wizard Pager审核中的数据放入数据库?

时间:2013-11-20 18:52:20

标签: java android sqlite android-fragmentactivity wizard

好吧所以我知道之前有人问过,但问题和答案对我的情况都没有帮助。我需要做的只是从向导末尾的评论页面获取所有数据并将其放入我的SQLite数据库中,以便将来在我的应用程序中使用它。

在这种情况下,我甚至不确定我应该在哪个班级工作。我真的希望之前遇到麻烦的人可以帮助我,因为我一直在寻找好几天而且我很难过!

提前感谢你们给我的任何帮助!

这是我到目前为止所尝试的内容,但总是返回null

  mNextButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {



            if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {

                String title = mWizardModel.findByKey("Surf:Post Title").getData().getString(SingleTextFieldPage.SIMPLE_DATA_KEY);
                int price = mWizardModel.findByKey("Surf:Price").getData().getInt(NumberPage.SIMPLE_DATA_KEY);  
                String maincat = mWizardModel.findByKey("Main Category").getData().getString(Page.SIMPLE_DATA_KEY);

                Long newId = myDb.insertRow(title, price, maincat);

                DialogFragment dg = new DialogFragment() {
                    @Override
                    public Dialog onCreateDialog(Bundle savedInstanceState) {
                        return new AlertDialog.Builder(getActivity())
                                .setMessage(R.string.submit_confirm_message)
                                .setPositiveButton(R.string.submit_confirm_button, null)
                                .setNegativeButton(android.R.string.cancel, null)
                                .create();
                    }
                };
                dg.show(getSupportFragmentManager(), "place_order_dialog");
            } else {
                if (mEditingAfterReview) {
                    mPager.setCurrentItem(mPagerAdapter.getCount() - 1);
                } else {
                    mPager.setCurrentItem(mPager.getCurrentItem() + 1);
                }
            }

        }
    });

2 个答案:

答案 0 :(得分:2)

@Derek Smith我找到了一种保存数据的方法,它对我有用。

这是我的AbstractWizardModel类块:

@Override
protected PageList onNewRootPageList() {

    return new PageList(
            new LoginInfoPage(this, "Login Information").setRequired(true));
}

它类似于随图书馆提供的样本。

现在在您的MainActivity中,写如下:

String data = mWizardModel.findByKey("LoginInformation").getData().getString(LoginInfoPage.EMAIL_DATA_KEY);

检索数据的主要方法是“关键”。在我的情况下,键是“登录信息”,这也是你的标题。

希望它有所帮助。

此致

答案 1 :(得分:1)

我认为这就是你所需要的:

这是输入的测验数据的层次结构:

页面列表>分支页面>分支(问题)>选择(单个或多个)

String data = mWizardModel.findByKey("Question:Choice").getData().getString(Page.SIMPLE_DATA_KEY);

示例

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

这也是我从“问题”中获取所有选定答案并计算得分的方法,

<强> mNextButton.setOnClickListener

if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {
                    int score = 0;
                    String q1 = mWizardModel.findByKey("Yes:Question 1")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q2 = mWizardModel.findByKey("Yes:Question 2")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q3 = mWizardModel.findByKey("Yes:Question 3")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q4 = mWizardModel.findByKey("Yes:Question 4")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q5 = mWizardModel.findByKey("Yes:Question 5")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q6 = mWizardModel.findByKey("Yes:Question 6")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q7 = mWizardModel.findByKey("Yes:Question 7")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q8 = mWizardModel.findByKey("Yes:Question 8")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q9 = mWizardModel.findByKey("Yes:Question 9")
                            .getData().getString(Page.SIMPLE_DATA_KEY);
                    String q10 = mWizardModel.findByKey("Yes:Question 10")
                            .getData().getString(Page.SIMPLE_DATA_KEY);

                    if (q1 == "c3") {
                        score = score + 1;
                    }
                    if (q2 == "c2") {
                        score = score + 1;
                    }
                    if (q3 == "c1") {
                        score = score + 1;
                    }
                    if (q4 == "c4") {
                        score = score + 1;
                    }
                    if (q5 == "c1") {
                        score = score + 1;
                    }
                    if (q6 == "c4") {
                        score = score + 1;
                    }
                    if (q7 == "c2") {
                        score = score + 1;
                    }
                    if (q8 == "c3") {
                        score = score + 1;
                    }
                    if (q9 == "c1") {
                        score = score + 1;
                    }
                    if (q10 == "c4") {
                        score = score + 1;
                    }
                    Toast.makeText(getApplicationContext(), "Score:" + score,
                            Toast.LENGTH_LONG).show();