Android:如何将对话框放入循环中

Posted

技术标签:

【中文标题】Android:如何将对话框放入循环中【英文标题】:Android: How Can I put a Dialog box in a loop 【发布时间】:2017-03-08 02:27:05 【问题描述】:

我正在尝试制作将在对话框中显示协议的活动屏幕。 每次用户按“取消”或“不同意”时,如何使对话框重复出现。 并继续同意活动。 ?

【问题讨论】:

移除不同意按钮并设置可取消为false 当对话框再次出现时提供取消选项是没有意义的。坏主意 很抱歉,但这是有道理的。由于如果用户不同意,则会显示同意,因此应用程序应重新显示同意,或者可能会说“您必须同意”然后重新显示。不过感谢您的建议! 不同意就关闭应用 【参考方案1】:

我同意提供“取消”或“否”选项,同时不提供除接受之外的其他选项,您可以使用 View 的方法 callOnClick 来实现它。

这将允许您在每次用户单击“否”或“取消”时触发对话框。但是,这仅适用于您从按钮触发原始对话框的假设,因为您没有提供任何代码来查看(您的活动,它的 xml 布局):

public class MainActivity extends AppCompatActivity 
final Context context = this;
private Button button;

@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    button = (Button) findViewById(R.id.a_main_btn);

    button.setOnClickListener(new View.OnClickListener() 
        @Override
        public void onClick(View v) 
            final View view = v;
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
            alertDialogBuilder.setTitle("Dialog Title");
            alertDialogBuilder
                    .setMessage("Click yes to exit dialog")
                    .setCancelable(false)
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() 
                        @Override
                        public void onClick(DialogInterface dialog, int which) 
                            MainActivity.this.finish();
                        
                    )
                    .setNegativeButton("No", new DialogInterface.OnClickListener() 
                        @Override
                        public void onClick(DialogInterface dialog, int which) 
                            view.callOnClick();
                        
                    );
            AlertDialog alertDialog = alertDialogBuilder.create();
            alertDialog.show();
        
    );

【讨论】:

以上是关于Android:如何将对话框放入循环中的主要内容,如果未能解决你的问题,请参考以下文章

将 UI 插入另一个 MFC 对话框

血本急求:将对话框放入 DLL 文件当中,在主程序中作为子窗口非模态显示,做完操作后,释放该 DLL 的方法

Android如何在Dialog中适合listview

Android:视频视图:如何循环播放视频

将对话框中的 qlineEdit 中的一段文本放入 qlineEdit @ mainwindow 的问题

如何在 orbeon 中的所有表单上填充对话框