В alertdialog, как установить изображение вверху

Я работаю над упражнением по кодированию, которое касается AlertDialog. Я надеюсь, что в диалоговом окне изображение или представление можно разместить в верхней части диалогового окна, как заголовок, но оно идет вниз.

Код XML:

 <ImageView
    android:layout_width="50dp"
    android:layout_height="50dp"
    android:src="@drawable/star"/>

<TextView
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:text=" choose your sex"
    android:gravity="center_vertical"/>

Код активности:

private void showSingleDialog() {
 LayoutInflater factory = LayoutInflater.from(this);
 final View view = factory.inflate(R.layout.activity_solo, null);

 AlertDialog.Builder builder = new AlertDialog.Builder(this);
 builder.setView(view);

 final String[] sex = {
  "male",
  "felmale",
  "unknow",
  "guess"
 };
 builder.setSingleChoiceItems(sex, 0, new DialogInterface.OnClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int i) {
   Toast.makeText(MainActivity.this, "your choice is:" + sex[i], Toast.LENGTH_LONG).show();
   dialog.dismiss();
  }
 });

 builder.show();
}

Я попытался разместить builder.setView (view) в другом месте, он все равно идет вниз. Есть какие-нибудь подсказки для меня? Большое спасибо

p.s извините за плохой английский, изображение прикрепил сюда Мой результат

Я надеюсь, что маленькая Звездочка и «выбери свой пол» будут на вершине

Привет, ты можешь показать мне весь свой файл макета. Возможно, вам просто нужно реструктурировать файл макета

Dominic D'Souza 13.09.2018 18:31

Извините за поздний ответ, этот xml-код представляет собой все представление, включая представление изображения и textView в LinearLayout. Я добавил представление к этому SingleChoice AlertDialog в качестве заголовка.

user10350198 13.09.2018 20:19
0
2
188
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В качестве альтернативы вы можете добиться того же представления с помощью методов drawable и title:

@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
    final String[] array = {"male","felmale","unknow","guess"};
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    builder.setIcon(R.drawable.ic_star);
    builder.setTitle("Choose your sex")
            .setSingleChoiceItems(array, -1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    sex = array[i];
                    //handle on click 
                }
            });

    return builder.create();
}

Я получил такое же представление:

Dialog with custom title

Спасибо за помощь. Я установил android: onClick для кнопки, и я могу просто запустить «общедоступное пустое диалоговое окно», чтобы вызвать диалоговое окно, но как вызвать этот настраиваемый диалог?

user10350198 13.09.2018 21:21

Я обновил свой ответ, посмотрите его @ user10350198

Deepak Kumar 14.09.2018 13:31

Другие вопросы по теме