我正在尝试使用有用的对话框消息系统创建我的程序简介。 我不想一次用太多的文本重载用户,所以我想把我的对话分成几部分。 当然,每个部分都有自己的信息。
我使用一个单独的静态类来处理消息传递和流逻辑;它工作正常。 我实际上也使用了3个Dialogs。 一个用于第一条消息(因为您无法返回),一条用于中间消息,一条用于最终消息(因为您无法继续)。 我可以毫无问题地从第一条消息中调用中间消息。我也能够回到第一条消息。但是,当我尝试从中间消息对话框重新显示中间消息时,不会出现新对话框。
实施例: 假设我有4条消息,所以中间消息需要出现两次:
问题是我在第5步没有得到任何对话。 我正在使用onPrepareDialog来重新初始化对话框。现在它基本上是onCreateDialog的一个克隆,其中switch中的每个case都调用适合该对话框的builder方法。
这是我的中间对话框方法的代码。 (其他2个大致相同。你可以从中猜出它们的样子。)
protected AlertDialog buildMiddleNoticeDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder
.setTitle(Notice.getTitle())
.setMessage(Notice.getMessage())
.setCancelable(false)
.setNegativeButton(resources.getString(R.string.notice_next_button),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
showDialog(Notice.next());
}
})
.setPositiveButton(resources.getString(R.string.notice_previous_button),
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
showDialog(Notice.previous());
}
});
return builder.create();
}
答案 0 :(得分:3)
我使用了一个普通的对话框,里面有一个TextSwitcher,两个按钮可以前进或后退。 TextSwitcher只是更改文本,一些动画可以进行文本更改。试试吧! 这两个按钮的功能仅取决于我的字符串数组中的位置,其中所有消息都存储在有序位置。
这是我用以对话框主题开始的活动:http://saintfeintcity.org/projects/sfc/repository/entry/trunk/src/org/saintfeintcity/activities/TippsAndTricksActivity.java