2011-12-26 54 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. 我使用與一個TextView的定義自定義XML文件,並設置下拉資源這樣也嘗試(文件: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文件解決方案,應該有工作,但也許這是由於指向一個錯誤的ID。

您有:

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" 

乾杯!

+0

哇,感謝您的快速幫助!但不幸的是,它仍然不起作用。我在原來的文章中犯了一個錯誤,我確實有這樣的:int [] to = new int [] {R.id.tvDBViewRow},我在編輯器中搞砸了,並且粘貼了一條評論....我嘗試添加樣式屬性添加到XML。我可以使它工作的唯一方法是使用int [] to = new int [] {R.id.text1};和simple_spinner _item,不幸的是它不適用於這個應用程序。其他所有我嘗試過的結果都是空白行,或點擊時突出顯示內容的行 – 2011-12-26 16:12:48

+0

simple_dropdown_item_1line似乎與int [] to = new int [] {R.id.text1}一起工作;但它很醜,實際上太大了。仍然似乎無法找到合適的組合來獲得該自定義XML文本視圖的工作.... – 2011-12-26 16:23:50

+0

嗯......奇怪。我有一個類似的問題,我通過使用默認ArrayAdapter與自定義佈局解決(最終ArrayAdapter 適配器=新ArrayAdapter (這一點,R.layout.dropdown_item,R.id.txt_spinner))和設置像TextView的領域我上面發佈的那些顏色加上黑色。 – jcxavier 2011-12-26 16:43:46

相關問題