2011-12-26 21 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. Iもの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> 
    

これは、元のストレートスピナーを使用した場合でも、どちらも機能しません(空白行)。 (最初の項目が自動的に選択されるので使用できません)。ここで

元のコードスニペットは、次のとおりです。

  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 []をnew int [] {R.id.text1}に使用することです。 simple_spinner _itemは、このアプリケーションでは不幸にも機能しません。私が試したその他のものは、空の行、またはクリックされたときにコンテンツをハイライトする行のいずれかになります。 –

+0

simple_dropdown_item_1lineはint [] = new int [] {R.id.text1};しかし、それは醜く、実際には大きすぎます。それでも、カスタムXMLのテキストビューを正しく動作させるための適切な組み合わせを見つけることができないようです。 –

+0

うーん...奇妙なことです。私は同様の問題を抱えていました。カスタムレイアウト(デフォルトのArrayAdapter アダプタ=新しいArrayAdapter (これ、R.layout.dropdown_item、R.id.txt_spinner);)でデフォルトのArrayAdapterを使用して解決しました。私が上記に投稿したものと、色を黒に設定したもの。 – jcxavier

関連する問題