Я работаю над упражнением по кодированию, которое касается 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 извините за плохой английский, изображение прикрепил сюда Мой результат
Я надеюсь, что маленькая Звездочка и «выбери свой пол» будут на вершине
Извините за поздний ответ, этот xml-код представляет собой все представление, включая представление изображения и textView в LinearLayout. Я добавил представление к этому SingleChoice AlertDialog в качестве заголовка.
В качестве альтернативы вы можете добиться того же представления с помощью методов 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();
}
Я получил такое же представление:
Спасибо за помощь. Я установил android: onClick для кнопки, и я могу просто запустить «общедоступное пустое диалоговое окно», чтобы вызвать диалоговое окно, но как вызвать этот настраиваемый диалог?
Я обновил свой ответ, посмотрите его @ user10350198
Привет, ты можешь показать мне весь свой файл макета. Возможно, вам просто нужно реструктурировать файл макета