如何在测验中正确或错误的答案后加载主题活动?

时间:2013-02-28 17:55:28

标签: java android android-sqlite

好的,我被建议为我的问题制作一个新帖子。我正在使用导入的SQLite数据库。无论如何,我已经为正确和错误的答案做了两个主题对话,我想在点击正确或错误的答案时显示它们。这是我活动中的代码,删除部分:

private class Answer {
        public Answer(String opt, boolean correct) {
            option = opt;
            isCorrect = correct;
        }

        String option;
        boolean isCorrect;
    }

    final OnClickListener clickListener = new OnClickListener() {

        public void onClick(View v) {
            Answer ans = (Answer) v.getTag();
            if (ans.isCorrect) {
                Toast toastT = Toast.makeText(Kviz.this, "Correct!", Toast.LENGTH_SHORT);
                toastT.show();
                finish();
            }else{
                Toast toastP = Toast.makeText(Kviz.this, "Wrong!", Toast.LENGTH_SHORT);
                toastP.show();
                }
                startActivity(getIntent());
            }
    };

当我像上面一样使用Toast时效果很好,但是当我尝试使用这样的主题活动时,它没有,而是直接进入下一个问题,当我按下手机上的后退按钮时,我得到了主题弹出活动:

final OnClickListener clickListener = new OnClickListener() {

        public void onClick(View v) {
            Answer ans = (Answer) v.getTag();
            if (ans.isCorrect) {
                Intent t = new Intent("rs.androidaplikacijekvizopstekulture.TACANODGOVOR");
                startActivity(t);
                finish();
            }else{
                    Intent p = new Intent("rs.androidaplikacijekvizopstekulture.POGRESANODGOVOR");
                    startActivity(p);
                }
                startActivity(getIntent());
            }
    };

重复一遍,当我按下后退按钮时,我得到了主题活动,当我向后退时,我得到了错误的和正确的。我只想显示该对话框,然后加载下一个问题,就像它与Toast一样。只是提到这个活动加载在我的其他活动中工作得很好,只有按下简单的按钮,没有问题和答案。

1 个答案:

答案 0 :(得分:0)

原因是在调用任何(正确/错误)startActivity之后,它继续调用startActivity(getIntent());方法。一种方法是让你的TACANODGOVOR& POGRESANODGOVOR通过在清单文件android:theme="@android:style/Theme.Dialog"中为这些活动添加以下标记/值来进行对话活动,例如

<activity ... android:theme="@android:style/Theme.Dialog" />

它将显示TACANODGOVOR&amp; POGRESANODGOVOR作为对话框,除非用户按下后退按钮(或任何退出按钮活动可能有),否则它不会进入下一行。