Android 按钮 onclick 如果对话框打开关闭它否则打开它
Android button onclick if dialog open close it else open it
在我的应用程序中,我使用按钮 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();
}
}
});
如果我再次按下按钮,对话框不会关闭
Dialog 有一个 isShowing() 方法,如果对话框当前可见,该方法应该 return。因此,您可以使用它来查看对话框是否正在显示并使用 dismissDialog() 隐藏它。
在按钮的 onClick 中。使用下面的代码。
if(dialog!=null&&dialog.isShowing())
dialog.dismiss();
else
dialog.show();
@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 中初始化。首先在 create 中进行初始化,然后声明它。
在我的应用程序中,我使用按钮 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();
}
}
});
如果我再次按下按钮,对话框不会关闭
Dialog 有一个 isShowing() 方法,如果对话框当前可见,该方法应该 return。因此,您可以使用它来查看对话框是否正在显示并使用 dismissDialog() 隐藏它。
在按钮的 onClick 中。使用下面的代码。
if(dialog!=null&&dialog.isShowing())
dialog.dismiss();
else
dialog.show();
@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 中初始化。首先在 create 中进行初始化,然后声明它。