如何链接(立即重用)相同的对话框

时间:2010-11-18 22:36:44

标签: android

我正在尝试使用有用的对话框消息系统创建我的程序简介。 我不想一次用太多的文本重载用户,所以我想把我的对话分成几部分。 当然,每个部分都有自己的信息。

我使用一个单独的静态类来处理消息传递和流逻辑;它工作正常。 我实际上也使用了3个Dialogs。 一个用于第一条消息(因为您无法返回),一条用于中间消息,一条用于最终消息(因为您无法继续)。 我可以毫无问题地从第一条消息中调用中间消息。我也能够回到第一条消息。但是,当我尝试从中间消息对话框重新显示中间消息时,不会出现新对话框。

实施例: 假设我有4条消息,所以中间消息需要出现两次:

  1. 出现第一条消息:用户点击下一步
  2. 出现中间消息:用户点击上一个
  3. 出现第一条消息:用户点击下一步
  4. 出现中间消息:用户点击下一步
  5. 出现中间消息:用户点击下一步
  6. 出现最终消息
  7. 问题是我在第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();
    }
    

1 个答案:

答案 0 :(得分:3)

我使用了一个普通的对话框,里面有一个TextSwitcher,两个按钮可以前进或后退。 TextSwitcher只是更改文本,一些动画可以进行文本更改。试试吧! 这两个按钮的功能仅取决于我的字符串数组中的位置,其中所有消息都存储在有序位置。

这是我用以对话框主题开始的活动:http://saintfeintcity.org/projects/sfc/repository/entry/trunk/src/org/saintfeintcity/activities/TippsAndTricksActivity.java