2011-12-26 1 views
1

Я не могу понять это для жизни меня. Я запрашиваю базу данных для списка и передаю этот список в AlertDialog, чтобы получить вход пользователя. В настоящее время я использую simple_spinner_item, и данные отображаются просто отлично. Однако при использовании этого метода строки слишком узкие, и я хотел бы изменить ширину. Я экспериментировал с несколькими различными способами:Android simple_list_item_single_choice Бланк При использовании SimpleCursorAdapter

  1. Изменение:

    android.R.layout.simple_spinner_item 
    

К основе макета списка, как:

android.R.layout.simple_list_item_single_choice 

Это было бы идеально, но список пуст! Элементы отображаются, когда я нажимаю на них отдельно. Так что это не работает.

  1. Я также попытался использовать пользовательский файл 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) 
       { 
         (...) 

Спасибо!

ответ

0

Пользовательское решение для XML-файлов должно было работать, но, вероятно, это связано с указанием ошибочного идентификатора.

Вы были:

int[] to = new int[] { android.R.id.db_view_row}; 
adapterDenomination.setDropDownViewResource(R.layout.db_view_row); 

Вероятно, это должно было быть:

int[] to = new int[] { R.id.tvDBViewRow }; 
adapterDenomination.setDropDownViewResource(R.layout.db_view_row); 

Кроме того, если вы все еще не можете заставить его работать, попробуйте добавить следующие строки в пользовательской TextView :

style="?android:attr/dropDownItemStyle" 
android:textAppearance="?android:attr/textAppearanceLargeInverse" 

Cheers!

+0

Ничего себе, спасибо за быструю помощь! но, к сожалению, он все еще не работает. Я сделал ошибку в исходном сообщении, у меня было это: int [] to = new int [] {R.id.tvDBViewRow} ;, я перепутался в редакторе и вставил комментарий ... Я попытался добавить style для XML. Единственный способ заставить его работать - использовать int [] to = new int [] {R.id.text1}; и simple_spinner _item, что, к сожалению, не будет работать для этого приложения. Все, что я попробовал, либо приводит к пустой строке, либо строке, которая выделяет содержимое при нажатии. –

+0

simple_dropdown_item_1line, похоже, работает с int [] to = new int [] {R.id.text1}; но он уродлив и на самом деле слишком большой. По-прежнему не может найти правильную комбинацию, чтобы заставить пользовательский XML-текст работать. –

+0

Хм ... странно.У меня была аналогичная проблема, которую я решил с помощью ArrayAdapter по умолчанию с настраиваемым макетом (final ArrayAdapter adapter = new ArrayAdapter (это, R.layout.dropdown_item, R.id.txt_spinner);) и установка полей TextView, таких как те, которые я разместил выше, и установили цвет в черный. – jcxavier

Смежные вопросы