2015-09-14 141 views
0

我试图显示弹出式对话窗口。在这个函数创建 对话框:为什么dialog.setFinishOnTouchOutside(false)无法解析&

protected void showLoginDialog() { 
    // TODO Auto-generated method stub 
    final Dialog dialog = new Dialog(mContext); 
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    dialog.setContentView(R.layout.logindialog); 
    dialog.setFinishOnTouchOutside(false); 
    final EditText edlogin = (EditText)dialog.findViewById(R.id.username); 
    final EditText edpass = (EditText)dialog.findViewById(R.id.password); 
    Button btnLogin = (Button)dialog.findViewById(R.id.btnLogin); 
    Button btnCancel = (Button)dialog.findViewById(R.id.btnCancel); 
    btnLogin.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      loginlogin = edlogin.getText().toString(); 
      loginpassword = edpass.getText().toString(); 
      loginresult = 1; 
      dialog.dismiss(); 
     } 
    }); 
    btnCancel.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      loginlogin = ""; loginpassword = ""; loginresult = 0; 
      dialog.dismiss(); 
     } 
    }); 
    dialog.show(); 
} 

dialog.setFinishOnTouchOutside(false)被标记为错误与消息

无法解析方法setFinishOnTouchOutside(布尔)

。 有什么问题?
我的应用程序的主要活动延伸至FragmentActivity

+0

从包要导入对话框? – Rajesh

回答

0

“无法解析setFinishOnTouchOutside(Boolean)方法”。什么是 错?

因为如Dialog类所示,没有这样的方法可用于setFinishOnTouchOutside名称。

setFinishOnTouchOutside方法Activity和FragmentActivity类

要使用setFinishOnTouchOutside方法需要使用类上下文可用它正在扩大活动或FragmentActivity,如:

Your_Activity_Name.this.setFinishOnTouchOutside(false); 
+0

很好!我写了MainActivity.this.setFinishOnTouchOutside(false);并没有语法错误。但是当我从屏幕对话边框中点击屏幕时,我的对话消失了......这是错误的。 –

+0

希望此主题回答你.http://stackoverflow.com/questions/12102777/prevent-android-activity-dialog-from-closing-on-outside-touch – mhanifa

相关问题