在显示AlertDialog时重置活动

时间:2017-12-26 15:51:04

标签: android alertdialog

我的活动在AlertDialog显示时重置。

我正在学习Android并遵循此tutorial.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    // Other Code
    submitBtn = (Button) findViewById(R.id.submit_button);
    // Other Code
    submitBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v){
            AlertDialog alert = builder.create();
            alert.setMessage("Hello " + name);
            alert.setTitle("Showing content in prompt window");
            alert.show();
            setContentView(R.layout.activity_main);
        }

这是我的AlertDialogCode:

//creating the alert dialog
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true)
            .setNegativeButton("Close", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int id) {
                //Action for close button
                    dialog.cancel();
                }
            });

一旦显示AlertDialog,活动就会重置 你能帮忙说出活动重置的原因吗?

3 个答案:

答案 0 :(得分:2)

您正在重置具有相同布局的活动的XML视图,以便

删除setContentView(R.layout.activity_main);

 public void onClick(View v){
     AlertDialog alert = builder.create();
     alert.setMessage("Hello " + name);
     alert.setTitle("Showing content in prompt window");
     alert.show();
     //setContentView(R.layout.activity_main);
     //^^^^^^^^^^^^^^^^^^^^^^^^^^^^ remove
}

答案 1 :(得分:2)

评论或删除该行

        setContentView(R.layout.activity_main);

在你第一个代码上。因为这会强制您的活动重新加载。

答案 2 :(得分:1)

当您调用df.groupby(['x1','x2']).ngroups Out[1267]: 4 方法时,您只需设置一次内容视图。在您的代码中,您已在第二行设置了onCreate。如果您碰巧再次设置它,它将重置您的活动并删除您的事件处理程序。

因此建议您删除第二个setContentView。这也是您正在学习的教程中的问题。

setContentView