单击按钮后出现一个对话框,代码如下。
public void howtoplayvideo(View v){
final Dialog dialog = new Dialog(this,android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen);
dialog.setContentView(R.layout.dialogbox);
Button exit = (Button) dialog.findViewById(R.id.done);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog_open=false; //flag to know when dialog is open
dialog.dismiss();
}
});
dialog_open=true;
dialog.show();
}
查看此对话框时,如果接收到实时消息,则如何从onRealTimeMessageReceived关闭此对话框
@Override
public void onRealTimeMessageReceived(RealTimeMessage rtm) {
byte[] buf = rtm.getMessageData();
int button = (int) buf[0];
switch (button) {
case 1:
if(dialog_open) {
//how to access and close dialog box here
}
}}
如果我在方法外声明对话框是公共的,则会出现一个错误,该错误无法在onCreate之前初始化。
Dialog mDialog;
public void howtoplayvideo(){
mDialog = new Dialog(this,android.R.style.Theme_DeviceDefault_NoActionBar_Fullscreen);
mDialog.setContentView(R.layout.dialogbox);
Button exit = (Button) mDialog.findViewById(R.id.done);
exit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mDialog.dismiss();
}
});
mDialog.show();
}
@Override
public void onRealTimeMessageReceived(RealTimeMessage rtm) {
byte[] buf = rtm.getMessageData();
int button = (int) buf[0];
switch (button) {
case 1:
if (mDialog != null && mDialog.isShowing())
mDialog.dismiss();
break;
}}
将对话框设置为类变量,然后可以在该类的其他方法中使用此对话框。
不需要为检查天气对话框是否显示而保留额外的布尔值,为此可以使用dialog.isShowing()。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句