2013-07-05 6 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

Или просто 'final Dialog emailDialog = new Dialog (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 Используйте для того, чтобы получить правильный диалог.

Смежные вопросы