好的,我被建议为我的问题制作一个新帖子。我正在使用导入的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一样。只是提到这个活动加载在我的其他活动中工作得很好,只有按下简单的按钮,没有问题和答案。
答案 0 :(得分:0)
原因是在调用任何(正确/错误)startActivity
之后,它继续调用startActivity(getIntent());
方法。一种方法是让你的TACANODGOVOR& POGRESANODGOVOR通过在清单文件android:theme="@android:style/Theme.Dialog"
中为这些活动添加以下标记/值来进行对话活动,例如
<activity ... android:theme="@android:style/Theme.Dialog" />
它将显示TACANODGOVOR&amp; POGRESANODGOVOR作为对话框,除非用户按下后退按钮(或任何退出按钮活动可能有),否则它不会进入下一行。