Benutzerdefinierte hintergrund Farbe für den ausgewählten Artikel mit "activatedBackgroundIndicator" Navigation Drawer

Diese Frage wurde gebeten, eine Menge auf SO, und ich habe verwiesen auf alle Fragen Antworten. Ich bin immer noch mit der Standard-Holo-blau hintergrund für die ausgewählten Objekte auf meine navigation Schublade. Ich bin neu in Java und ich bin verwirrt über die "Kontext" - Teil .setAdapter().
Mein Projekt ist eine einzelne Aktivität mit mehreren Fragmenten ausgetauscht mithilfe der nav-Schublade.

Hier mein adapter:

mDrawerListView.setAdapter(new ArrayAdapter<String>(
            //First parameter - Context
            getActionBar().getThemedContext(),
            //Second parameter - Layout for the row
            R.layout.fragment_navigation_drawer_list_item,
            //Third parameter - ID of the TextView to which the data is written
            android.R.id.text1,
            //Forth - the Array of data
            new String[]{
                    getString(R.string.title_section1),
                    getString(R.string.title_section2),
                    getString(R.string.title_section3),
                    getString(R.string.title_section4),
            }));
    mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);

Rahmen kommt hier aus der "pre-cooked" navigation drawer in Android Studio. Ich dachte, das wäre die Antwort Navigation Drawer Artikel-hintergrund-Farbe für das ausgewählte Element. Also änderte ich meinen Kontext zu getActivity().getBaseContext(),, aber das konnte nichts ändern.

Mein Thema (styles.xml):

<resources>
    <style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
        <!-- API 14 theme customizations can go here. -->
        <item name="android:actionBarStyle">@style/ActionBar</item>
    </style>

    <!-- Navigation Drawer styling -->
    <style name="NavDrawerItemSelected" parent="AppBaseTheme">
        <item name="android:activatedBackgroundIndicator">@drawable/activated_background</item>
    </style>
</resources>

activated_background im 'drawables' dir:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_activated="true" android:drawable="@color/green" />
    <item android:state_selected="true" android:drawable="@color/green" />
    <item android:state_pressed="true" android:drawable="@color/green" />
    <item android:state_checked="true" android:drawable="@color/green" />        
    <item android:drawable="@android:color/transparent" />
</selector>

Ich weiß nicht, welche von den oben genannten Staaten verwendet werden soll, so dass ich fügte hinzu, alle von Ihnen, die ich finden konnte.
Schließlich, wenn ein Element ausgewählt ist mDrawerListView.setItemChecked(position, true); genannt wird.
Alles funktioniert, außer für das benutzerdefinierte Thema styling. (min-API = 11, testen auf API-17 AVD)

InformationsquelleAutor Flash | 2014-04-16

Schreibe einen Kommentar