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

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

【问题讨论】:

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

标签: android android-layout android-activity dialog android-dialog


【解决方案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();
        }
    });
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    相关资源
    最近更新 更多