В 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
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
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

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