В AlertDialog, как установить изображение сверху - PullRequest
0 голосов
/ 13 сентября 2018

Я работаю над упражнением по кодированию, которое посвящено 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 Извините за мой плохой английский, я прикрепил изображение здесь Мой результат

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

1 Ответ

0 голосов
/ 13 сентября 2018

В качестве альтернативы вы можете получить тот же вид с помощью методов 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...