Я не могу понять это для жизни меня. Я запрашиваю базу данных для списка и передаю этот список в AlertDialog, чтобы получить вход пользователя. В настоящее время я использую simple_spinner_item, и данные отображаются просто отлично. Однако при использовании этого метода строки слишком узкие, и я хотел бы изменить ширину. Я экспериментировал с несколькими различными способами:Android simple_list_item_single_choice Бланк При использовании SimpleCursorAdapter
Изменение:
android.R.layout.simple_spinner_item
К основе макета списка, как:
android.R.layout.simple_list_item_single_choice
Это было бы идеально, но список пуст! Элементы отображаются, когда я нажимаю на них отдельно. Так что это не работает.
Я также попытался использовать пользовательский файл XML с определением TextView и настройка выпадающий ресурса, как этот (файл: db_view_row.xml):
<?xml version="1.0" encoding="utf-8"?> <LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <TextView android:text="" android:id="@+id/tvDBViewRow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#FF0000" /> </LinearLayout>
и ссылаться на него здесь:
int[] to = new int[] { android.R.id.db_view_row};
adapterDenomination.setDropDownViewResource(R.layout.db_view_row);
это не работает либо (пустые строки), хотя, когда я использовал прямой кок первоначально он сделал (который я не могу использовать, потому что первый элемент автоматически выбирается).
Вот оригинальный фрагмент кода:
String[] from = new String[] {"denomination_desc" };
int[] to = new int[] { android.R.id.text1 };
cursor.moveToFirst();
SimpleCursorAdapter adapterDenomination = new SimpleCursorAdapter(CoinsScreen.this,
android.R.layout.simple_spinner_item, cursor, from, to );
new AlertDialog.Builder(CoinsScreen.this)
.setTitle("Select Denomination")
.setAdapter(adapterDenomination, new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog, int which)
{
(...)
Спасибо!
Ничего себе, спасибо за быструю помощь! но, к сожалению, он все еще не работает. Я сделал ошибку в исходном сообщении, у меня было это: int [] to = new int [] {R.id.tvDBViewRow} ;, я перепутался в редакторе и вставил комментарий ... Я попытался добавить style для XML. Единственный способ заставить его работать - использовать int [] to = new int [] {R.id.text1}; и simple_spinner _item, что, к сожалению, не будет работать для этого приложения. Все, что я попробовал, либо приводит к пустой строке, либо строке, которая выделяет содержимое при нажатии. –
simple_dropdown_item_1line, похоже, работает с int [] to = new int [] {R.id.text1}; но он уродлив и на самом деле слишком большой. По-прежнему не может найти правильную комбинацию, чтобы заставить пользовательский XML-текст работать. –
Хм ... странно.У меня была аналогичная проблема, которую я решил с помощью ArrayAdapter по умолчанию с настраиваемым макетом (final ArrayAdapter adapter = new ArrayAdapter (это, R.layout.dropdown_item, R.id.txt_spinner);) и установка полей TextView, таких как те, которые я разместил выше, и установили цвет в черный. –
jcxavier