12

私は AutoCompleteTextView に取り組んでいます。正常に動作していますが、ドロップダウン テキストは常に白い背景に白いテキストです。この写真は私の問題を説明しています

写真は私の問題を説明します

ここに画像の説明を入力

XML:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000"
    >
    <!-- <AutoCompleteTextView  -->
    <AutoCompleteTextView
        android:id="@+id/text"
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"
        android:hint="Tapez votre 1texte"
        android:textColor="#000"        
        />
</LinearLayout>

ジャワ:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,data);
adapter.setDropDownViewResource(R.drawable.ic_action_search);//dd
view.setAdapter(adapter);
4

7 に答える 7

32

ドロップダウン項目の外観を変更する場合は、ArrayAdapter に渡す XML レイアウトを変更します (この場合は ですandroid.R.layout.simple_dropdown_item_1line)。

my_list_item.xmlinという名前の新しいレイアウトを作成しましょうres/layout:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    style="?android:attr/dropDownItemStyle"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:padding="5dp"
    android:textAppearance="?android:attr/textAppearanceMediumInverse"
    android:textColor="#00f" />

このテキストは小さく、青色で、中央に配置されています。このレイアウトの使用はお勧めしません。カスタマイズできることを示すためです。

代わりにこれを使用してください:

view = (AutoCompleteTextView)findViewById(R.id.text);        
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.my_list_item, data);
view.setAdapter(adapter);

ここで属性を設定すると (テキストの色など):

<AutoCompleteTextView
    android:id="@+id/text"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:hint="Tapez votre 1texte"
    android:textColor="#000"        
    />

ドロップダウン リストの上のボックス (AutoCompleteTextView を操作する前に表示されるボックス) のみを変更しています。それが役立つことを願っています!

于 2012-08-03T01:09:40.217 に答える
0

Answer by didldum https://code.google.com/p/android/issues/detail?id=5237

workaround by extending the theme and overriding the 2 styles for the typed text and the suggest text:

  1. use an extended theme in your manifest: ... ...

  2. create the new theme (res/values/themes.xml) which uses fixed styles: ... @style/AutoCompleteTextViewLight @style/Widget.DropDownItemLight ...

  3. create the styles (res/values/styles.xml) which fix the color: ... @android:color/primary_text_light @android:color/primary_text_light

于 2014-02-03T13:11:24.513 に答える
0

setcontext の前にテーマの設定を試み、arrayAdapter で別のリソース パラメータを試し、別のテーマを試しましたが、何も役に立ちませんでした。

次に、コンテキストを「this」から「getApplicationContext」に変更しましたが、問題は解決しませんでした。

最後に、コンテキスト パラメータを「getBaseContext()」に変更すると、問題は解決しました。

于 2015-02-14T16:17:55.710 に答える
0

「select_dialog_singlechoice ArrayAdapter<String > s1= new ArrayAdapter<String> (this,android.R.layout.select_dialog_singlechoice,state);ここに画像の説明を入力してください」のレイアウトを選択することで解決策を得ました

アプリケーション コンテキストを取得する代わりに、ArrayAdapter<> に "this" を書き込みます。

さまざまなレイアウトを使用してみてください。クエリは間違いなく解決されます

于 2016-07-11T06:35:01.427 に答える
0

これに対するトリッキーな解決策は次のとおりです。次の行を追加します setTheme(android.R.style.Theme); setContentView()autocompletetextview が存在するアクティビティ ファイルの前に。これがうまくいくかどうか教えてください。

于 2012-12-19T10:02:32.587 に答える