0

SimpleCursorAdapter を使用して ListView に追加された Cursor からのデータに白いテキストが表示される (黒くする方法) - 画像を参照

ここに画像の説明を入力 シンプルなカーソル アダプター コードは次のとおりです。

public void displayWords(Cursor c){

    // Creates a new SimpleCursorAdapter
    SimpleCursorAdapter mCursorAdapter = new SimpleCursorAdapter(
        getApplicationContext(),                    // The application's Context object
        android.R.layout.simple_list_item_1,        // A layout in XML for one row in the ListView
        c,                                          // The result from the query
        new String[] {DatabaseTable.COL_WORD},      // A string array of column names in the cursor
        new int[] { android.R.id.text1 });          // An integer array of view IDs in the row layout


    // Sets the adapter for the ListView
    setListAdapter(mCursorAdapter);

    /* Using SimpleCursorAdapter to get Data from DB.
     * stackoverflow.com/questions/12077955/android-using-simplecursoradapter-to-get-data-from-database-to-listview
     */
}

AndroidManifes ファイルで使用されるスタイル リソース

   <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
    <!-- API 14 theme customizations can go here. -->
</style>

<style name="AppBaseTheme" parent="android:Theme.Holo.Light">
    <!-- API 11 theme customizations can go here. -->
</style>

   <style name="AppBaseTheme" parent="android:Theme.Light">
    <!--
        Theme customizations available in newer API levels can go in
        res/values-vXX/styles.xml, while customizations related to
        backward-compatibility can go here.
    -->
</style>

<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
</style>
4

4 に答える 4

2

Egor が言ったように、もう少しコードを示していただけると助かります。

それまでの間: アプリ (または単にその activity() が「暗い」(holo) テーマを使用しているときに、「明るい」(holo) テーマを持つリスト ビュー アイテムを使用しているようです。textviews のテキスト色白い背景の上にアプリの暗いテーマ (白いフォントの色) からピックアップされます。

その理由を解明するには、追加のコード (AndroidManifest.xml など) が必要です。

OPのコメントの後に更新:

public void displayWords(Cursor c){

    // Creates a new SimpleCursorAdapter
    SimpleCursorAdapter mCursorAdapter = new SimpleCursorAdapter(
        getApplicationContext(),                    // The application's Context object
        android.R.layout.simple_list_item_1,        // A layout in XML for one row in the ListView
        c,                                          // The result from the query
        new String[] {DatabaseTable.COL_WORD},      // A string array of column names in the cursor
        new int[] { android.R.id.text1 }){
        @Override
        public View newView(Context context, Cursor cursor, ViewGroup parent) {
            View newView = super.newView(context, cursor, parent);
            ((TextView)newView.findViewById(android.R.id.text1)).setTextColor(Color.BLACK);
return newView;
        }
    };          // An integer array of view IDs in the row layout


    // Sets the adapter for the ListView
    setListAdapter(mCursorAdapter);

    /* Using SimpleCursorAdapter to get Data from DB.
     * stackoverflow.com/questions/12077955/android-using-simplecursoradapter-to-get-data-from-database-to-listview
     */
  }

アダプターのnewViewメソッドのオーバーライドをコードに追加しました。これにより、テキストの色を設定/変更できます。試してみて、それが機能するかどうかを確認してください。

于 2013-02-25T15:43:39.350 に答える
0

これを試して :

TextView tv = (TextView)findViewById(android.R.id.text1);

tv.setTextColor(Color.BLACK);

于 2013-02-25T15:40:38.163 に答える