11

AutoCompletetextViewを作成しました。AutoCompleteTextViewのドロップダウンの項目は表示されません。それらのアイテムの色を変更する方法。

これはそれがどのように見えるかです:

ここに画像の説明を入力してください

4

7 に答える 7

14

オートコンプリートビューでのアイテムの表示方法を制御するには、アダプタでtextViewResourceIdを設定する必要があります。以下に示すように、ArrayAdapterを使用しandroid.R.layout.simple_dropdown_item_1lineて、textViewResourceIdとして指定できます。

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line, yourList);
AutoCompleteTextView autocompleteView = (AutoCompleteTextView) findViewById(R.id.autocomplete_box);
autocompleteView.setAdapter(adapter);

また

表示されるアイテムに独自のスタイルを作成する場合は、このようにルート要素としてXMLを作成してください(黒い色のテキストと白い背景でTextView名前を付けましょう)my_custom_dropdown.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView 
    xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:textSize="20sp" 
    android:padding="5sp"
    android:textColor="@color/black"
    android:background="@color/white"/>

次に、以下のようにアダプターのxmlを参照します-

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,R.layout.my_custom_dropdown, yourList);
于 2012-07-11T10:03:20.210 に答える
7

android.R.layout.simple_dropdown_item_1lineそれを使用することにより、上記で発生したのと同じ問題が発生することを指摘してください。TextViewしたがって、ファイルに独自のファイルを作成する方がよいでしょう.xml

于 2012-07-23T13:43:03.110 に答える
5

コードをから"android.R.layout.simple_list_item_1"に 変更して"android.R.layout.simple_dropdown_item_1line" もうまくいかなかった場合は、

setContentViewの前にこのコードを書いてみてください

setTheme(android.R.style.Theme);

それは私のために働いた:)

于 2013-08-12T10:03:14.360 に答える
0

"android.R.layout.simple_list_item_1".....の代わりに使用するだけで"android.R.layout.simple_dropdown_item_1line"問題は解決します...:)

于 2012-12-06T07:14:01.337 に答える
0

サンプルプロジェクトを作成します:AutoCompleteTextViewAdapter(Github Repo)

ソースコードの次の行を実装する必要があります。

アクティビティ

ArrayAdapter<String> myCustomAdapter = new ArrayAdapter<String>(this, R.layout.text_custom_view, countriesNames);

final AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.auto_complete_text_view);
textView.setAdapter(myCustomAdapter);

カスタムTextViewを使用したXML

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/country_name"
    style="@style/CustomTextView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:singleLine="true" />

最終結果

AutoCompleteTextViewAdapter

于 2015-05-19T12:05:48.840 に答える
0

他の人が恩恵を受けることを願ってここに答えがあります

http://www.outofwhatbox.com/blog/2010/11/android-simpler-autocompletetextview-with-simplecursoradapter/

public class SelectState extends Activity {

final static int[] to = new int[] { android.R.id.text1 };  

    final static String[] from = new String[] { "state" };

    private TextView mStateCapitalView;
    private AutoCompleteTextView mStateNameView;
    private AutoCompleteDbAdapter mDbHelper;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mDbHelper = new AutoCompleteDbAdapter(this);
        setContentView(R.layout.selectstate);
        Button confirmButton = (Button) findViewById(R.id.confirm);
        confirmButton.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                setResult(RESULT_OK);
                finish();
            }
        });

        mStateCapitalView = (TextView) findViewById(R.id.state_capital);
        mStateNameView = (AutoCompleteTextView) findViewById(R.id.state_name);

        // Create a SimpleCursorAdapter for the State Name field.
        SimpleCursorAdapter adapter = 
            new SimpleCursorAdapter(this, 
                    android.R.layout.simple_dropdown_item_1line, null,
                    from, to);
        mStateNameView.setAdapter(adapter);

        // Set an OnItemClickListener, to update dependent fields when
        // a choice is made in the AutoCompleteTextView.
        mStateNameView.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> listView, View view,
                        int position, long id) {
                // Get the cursor, positioned to the corresponding row in the
                // result set
                Cursor cursor = (Cursor) listView.getItemAtPosition(position);

                // Get the state's capital from this row in the database.
                String capital = 
                    cursor.getString(cursor.getColumnIndexOrThrow("capital"));

                // Update the parent class's TextView
                mStateCapitalView.setText(capital);
            }
        });

        // Set the CursorToStringConverter, to provide the labels for the
        // choices to be displayed in the AutoCompleteTextView.
        adapter.setCursorToStringConverter(new CursorToStringConverter() {
            public String convertToString(android.database.Cursor cursor) {
                // Get the label for this row out of the "state" column
                final int columnIndex = cursor.getColumnIndexOrThrow("state");
                final String str = cursor.getString(columnIndex);
                return str;
            }
        });

        // Set the FilterQueryProvider, to run queries for choices
        // that match the specified input.
        adapter.setFilterQueryProvider(new FilterQueryProvider() {
            public Cursor runQuery(CharSequence constraint) {
                // Search for states whose names begin with the specified letters.
                Cursor cursor = mDbHelper.getMatchingStates(
                        (constraint != null ? constraint.toString() : null));
                return cursor;
            }
        });
    }
}

finalstaticint [] to = new int[]{android.R.id.text1};を確認してください。

于 2015-07-06T15:16:42.503 に答える
0

これが最も簡単な方法です。独自のTextViewxmlファイルを作成します。たとえば、custom_textview.xml

    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/tv"
     android:textColor="@color/font_content"
     android:padding="5sp"
     android:textSize="16sp"
     android:layout_width="match_parent"
     android:background="@drawable/any_background"
     android:singleLine="true"
     android:gravity="center"
     android:layout_height="match_parent"/>

その後、あなたの活動で

    //Create adapter object
    ArrayAdapter<String> adpt = new ArrayAdapter<String>(context,R.layout.mytextview, what_ever_array_object_here);
    searchAutoComplete.setAdapter(adpt);
于 2018-02-26T23:15:56.723 に答える