2015-09-14 91 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

相關問題