我的屏幕上有对话框。当我触摸屏幕对话框关闭时。我希望对话框不应该在外面触摸时关闭。我的代码如下: -
public class Dialogue extends Activity{
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_dialogue);
this.setFinishOnTouchOutside(false);
displayDialogue();
}
private void displayDialogue(){
final AlertDialog.Builder myDialogue = new AlertDialog.Builder(this);
myDialogue.setMessage("Please check your voice input output settings.It should be ON" );
TextView messageView = new TextView(this);
messageView.setGravity(Gravity.CENTER);
myDialogue.setView(messageView);
myDialogue.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(Dialogue.this, MainActivity.class);
startActivity(i);
finish();
}
});
AlertDialog dialog = myDialogue.create();
dialog.show();
}
答案 0 :(得分:3)
setCancelable(boolean cancelable): 设置对话框是否可取消。 Read More
myDialogue.setCancelable(false);
答案 1 :(得分:3)
您只需要将cancelable设置为false,这样在对话外部触摸时将保持打开状态。 在您的代码中尝试此操作:
myDialogue.setCancelable(false);
答案 2 :(得分:2)
添加此行
myDialogue.setCancelable(false);
希望这会有所帮助..
答案 3 :(得分:2)
将cancelable属性设置为false
private void displayDialogue(){
final AlertDialog.Builder myDialogue = new AlertDialog.Builder(this);
myDialogue.setMessage("Please check your voice input output settings.It should be ON" );
TextView messageView = new TextView(this);
messageView.setGravity(Gravity.CENTER);
myDialogue.setView(messageView);
myDialogue.setCancelable(false);
myDialogue.setPositiveButton("OK", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
Intent i = new Intent(Dialogue.this, MainActivity.class);
startActivity(i);
finish();
}
});
AlertDialog dialog = myDialogue.create();
dialog.show();
}
答案 4 :(得分:1)
inisde displayDialog()
方法,添加以下行:
.setMessage()
答案 5 :(得分:1)
你可能已经有了这个,但是对于未来的人来说,这对我有用: 您可以覆盖外部触摸,在对话框中不执行任何操作,如此处https://stackoverflow.com/a/5831214
所示