意图重叠对话框?

时间:2017-03-04 18:58:02

标签: android android-intent

我写这段代码来制作一个带有' yes'的对话框。并且没有'在按下“确定”后出现选项'按钮。 '是'应该引导用户进入ShowResult'活动,它将显示来自'主要活动的用户输入&#39 ;;并且没有'只会有一个祝酒词,说“你已经取消了提交。”#39;

问题是当点击“确定”按钮时,对话框弹出一秒钟,然后意图将显示,覆盖对话框。

如果我点击返回并点击“是”,则活动不会显示用户输入。这是我一直在努力的主要活动代码。我希望不要改变整个结构,因为这是一个学校项目,我们应该使用简单的技术。

 Button btnOK;
    EditText txtName;
    EditText txtCoursename;
    RadioButton rdnYear1;
    RadioButton rdnYear2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btnOK = (Button) findViewById(R.id.btnOK);
        btnOK.setOnClickListener(this);
    }
    @Override
    public void onClick(View v) {

        Intent intent = new Intent(this, ShowResult.class);
        txtName = (EditText) findViewById(R.id.txtName);
        txtCoursename = (EditText) findViewById(R.id.txtCoursename);
        rdnYear1 = (RadioButton) findViewById(R.id.rdnYear1);
        rdnYear2 = (RadioButton) findViewById(R.id.rdnYear2);

        intent.putExtra("Name", txtName.getText().toString());
        intent.putExtra("Course Name", txtCoursename.getText().toString());
        intent.putExtra("Year 1", rdnYear1.isChecked());
        intent.putExtra("Year 2", rdnYear2.isChecked());


        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setCancelable(false);

            switch (v.getId()) {
            case R.id.btnOK:
                builder.setTitle("You are submitting your data.");
                builder.setMessage("Are you sure?");
                builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(getApplicationContext(), "You cancelled the submission.", Toast.LENGTH_SHORT).show();
                    }

                });
                builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        startActivity(new Intent(MainActivity.this, ShowResult.class));

                    }
                });

                builder.show();
            }
    }
}

3 个答案:

答案 0 :(得分:0)

尝试将意图部分放入开关盒内;添加startActivity(intent);

答案 1 :(得分:0)

您已经在“onClick”的开头创建了一个intent。尝试使用相同的意图,而不是在积极点击后创建另一个新意图。另外,我没有在你需要遵循的switch case中看到 break 语句。

答案 2 :(得分:0)

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    startActivity(new Intent(MainActivity.this, ShowResult.class));

                }
            });

            builder.show();
        }

这里你创建了一个没有数据的新意图

您应该使用之前创建的意图,其中使用了putExtra()

使用它:

builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

////////////////////////////                         startActivity(意向); \\\\\\\\\\\\\\                     }                 });

            builder.show();
        }