2017-01-08 2 views
2

Я хотел бы спросить, как добиться обертывания содержимого в alertdialog? Поскольку текущий вывод моего диалога имеет избыточное белое поле.Как обернуть alertdialog в android?

Надеюсь, что кто-то может помочь мне понять эту проблему.

enter image description here

Вот мой activity_dialog.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_main" 
    android:minWidth="10dp" 
    android:minHeight="10dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    tools:context="com.bloxofcode.toggle.MainActivity"> 
    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="vertical"> 
     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textSize="50sp" 
      android:background="@color/colorHeaderDialog" 
      android:textColor="@android:color/white" 
      android:text="@string/select_gender" 
      android:padding="15dp" 
      android:gravity="center_horizontal|left"/> 

     <EditText 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:textSize="30sp" 
      android:padding="15dp" 
      android:text="Sample" 
      android:id="@+id/editText" /> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal"> 

      <ToggleButton 
       android:text="ToggleButton" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/toggleButtonMale" 
       android:textOn="" 
       android:textOff="" 
       android:focusable="false" 
       android:background="@drawable/check_male" 
       android:layout_weight="1" /> 

      <ToggleButton 
       android:text="ToggleButton" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:id="@+id/toggleButtonFemale" 
       android:textOn="" 
       android:textOff="" 
       android:focusable="false" 
       android:background="@drawable/check_male" 
       android:layout_weight="1" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" 
      android:padding="10dp"> 
      <Button 
       android:id="@+id/btnCancel" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Cancel" 
       android:textSize="20dp" 
       android:padding="30dp" 
       android:textColor="@android:color/white" 
       android:layout_weight="1"/> 
      <Button 
       android:id="@+id/btnAccept" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Accept" 
       android:textSize="20dp" 
       android:padding="30dp" 
       android:background="@color/colorDialogOK" 
       android:textColor="@android:color/white" 
       android:layout_weight="1"/> 
     </LinearLayout> 
    </LinearLayout> 
</RelativeLayout> 

Вот некоторые из моей реализации в MainActivity.java:

AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this); 
View mView = getLayoutInflater().inflate(R.layout.activity_dialog, null); 
..... 
mBuilder.setView(mView); 
final AlertDialog dialog = mBuilder.create(); 
dialog.show(); 
+0

[здесь подробности ответа и что именно происходит в диалоге предупреждения] (http://stackoverflow.com/a/14918253/7368826) –

ответ

1

Попробуйте создать подобный диалог. это работает отлично, а затем сразу же ваш диалог логик отделен от вас активности логика

public class CustomDialog extends Dialog implements 
     android.view.View.OnClickListener { 

    public Activity c; 
    public CustomDialog d; 
    public Button yes, no; 

    public CustomDialog(Activity a) { 
     super(a); 
     // TODO Auto-generated constructor stub 
     this.c = a; 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     requestWindowFeature(Window.FEATURE_NO_TITLE); 
     setContentView(R.layout.dialog_layout); 
     Button button = (Button) findViewById(R.id.button); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       //dosomething 
      } 
     }); 
    } 
} 
+0

Привет, сэр, спасибо за быстрый ответ, но я уже сделал это поначалу. Проблема с использованием match_parent заключается в том, что он растягивает изображения и слишком много дополнений внутри. – iamcoder

+0

Oke Я пробовал кое-что, и это отлично работает для меня, я отредактировал свой ответ –

+0

привет, спасибо за ответ, оценив его, но как я могу это реализовать? извините за новичка, здесь. – iamcoder

0

Надеется, что это не правильно, чтобы обернуть содержание диалога, как это может нарушить вид в таблетках и более крупных устройствах.

Во всяком случае, основываясь на вашем требовании .. надеюсь, что эта ссылка работает AlertDialog with custom view: Resize to wrap the view's content

+0

привет, я уже прочитал эту статью ... пытался ли вы ее выполнить? – iamcoder

+0

Да, похоже, он работает. Не могли бы вы попробовать один раз и сообщить мне, с какими проблемами вы столкнулись. – ChaitanyaAtkuri

+0

привет, я думаю, что приведенный выше код будет делать с моим кодом, он прост и прост. , но попробуем это другим способом в качестве ссылки. еще раз спасибо. – iamcoder

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