2013-07-05 70 views
4

我正在開發一個Android應用程序,並且有一個關於自定義對話框的問題。自定義對話框全屏打開

我這樣做是爲了打開自定義對話框:

protected void showSetFriendEmailDialog() 
{ 
    // Create the dialog. 
    final Dialog emailDialog = 
      new Dialog(FriendHomeActivity.this, android.R.style.Theme_DeviceDefault); 
    emailDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 

    emailDialog.setCancelable(true); 
    emailDialog.setContentView(R.layout.dialog_add_friend_email); 

    // Get dialog widgets references. 
    final EditText editFriendsEmail = (EditText)emailDialog.findViewById(R.id.editEmailAddFriendEmail); 
    Button btnAccept = (Button)emailDialog.findViewById(R.id.btnAddFriendEmail); 

    // Set on click lister for accept button 
    btnAccept.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View view) 
     { 
      // Get selected values 
      String friendEmail = 
        editFriendsEmail.getText().toString(); 

      // Close dialog. 
      emailDialog.dismiss(); 

      // TODO: Call api to send email to web service using friendsEmail var. 
      Log.v(TAG, "Friend email: " + friendEmail); 
     } 
    }); 

    //now that the dialog is set up, it's time to show it  
    emailDialog.show(); 
} 

這是它的佈局:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <TextView 
     android:id="@+id/textAddFriendEmail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/layout_set_friend_email" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/editEmailAddFriendEmail" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:inputType="textEmailAddress" > 

     <requestFocus /> 
    </EditText> 

    <Button 
     android:id="@+id/btnAddFriendEmail" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/ok" /> 

</LinearLayout> 

但它打開全屏。

我該怎麼辦才能打開它作爲AlertDialog

+0

有一個自定義對話框有什麼問題? – Raghunandan

+0

或者只是'最後的對話emailDialog = 新的對話框(FriendHomeActivity.this);' – user370305

回答

6

,你必須使用android.R.style.Theme.Dialog instenad的android.R.style.Theme_DeviceDefault

+1

我想你的意思是'android.R.style.Theme_Dialog'你呢? – RTF

1

只是做一個自定義樣式,並將其應用於對話......

<style name="full_screen_dialog" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:windowFullscreen">true</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> 
    <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item> 
    <item name="android:windowBackground">@android:color/transparent</item> 
</style> 
+0

這不是被問到的 –

1

使用R.style.Theme_AppCompat_Dialog,以獲得正確的對話框。