Android按钮onclick如果对话框打开关闭它,否则打​​开它

时间:2015-02-20 07:26:35

标签: android button if-statement

在我的应用程序中,我使用按钮onclick打开对话框,如果我再次按下相同的按钮,我想要关闭对话框,打开对话框。

    final ImageButton topmenu = (ImageButton) findViewById(R.id.menu);
    topmenu.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            final Dialog dialog = new Dialog(Search.this);

            if(dialog!=null&&dialog.isShowing()){
                dialog.dismiss();
            }else{
                   dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
                    dialog.setContentView(R.layout.actionmenu);
                    TextView text1 = (TextView) dialog.findViewById(R.id.textDialog1);
                    text1.setText("Search");
                    dialog.show();
            }

        }
    });

如果我再次按下按钮对话框未关闭

3 个答案:

答案 0 :(得分:1)

点击按钮。使用以下代码。

if(dialog!=null&&dialog.isShowing())
       dialog.dismiss();
    else
       dialog.show();

答案 1 :(得分:0)

Dialog有一个isShowing()方法,如果对话框当前可见,则该方法应该返回。因此,您可以使用它来查看是否显示对话框并使用dismissDialog()隐藏它。

答案 2 :(得分:0)

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

final Button topmenu = (Button) findViewById(R.id.menu);
topmenu.setOnClickListener(new OnClickListener()
{

@Override
public void onClick(View arg0)
{
final Dialog dialog = new Dialog(MainActivity.this);

if(dialog!=null&&dialog.isShowing()){
dialog.dismiss();
}else{
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.change_password);
TextView text1 = (TextView) dialog.findViewById(R.id.textDialog1);
text1.setText("Search");
dialog.show();
}

}
});

}


}

它有效...... 你的代码的问题可能是它没有在create方法上,也没有在create..first初始化on create,然后声明它。