Могу ли я узнать, как изменить цвет текста выбранного элемента в навигационном ящике.Навигационный ящик выбранного пункта textColor by Custom Adapter
андроид: TextColor для ListView не работает после установки appcompat_v7 22.1.1 , так что я думаю, что я не могу изменить, с помощью селектора вытяжки.
Мне удается изменить цвет элементов ящика по умолчанию с помощью пользовательского адаптера.
Но при инициализации это может только установить первый элемент в зеленый.
Могу ли я узнать, как изменить цвет выбранных элементов (onclick) на цвет, который я хочу, когда элемент выбран.
адаптер:
public class NavigationDrawerAdapter extends ArrayAdapter<String> {
private int mSelectedItem;
private final Context context;
private String[] sections;
public NavigationDrawerAdapter(Context context, int resource, String[] objects) {
super(context, resource, objects);
this.context = context;
sections = objects;
}
public int getSelectedItem() {
return mSelectedItem;
}
public void setSelectedItem(int selectedItem) {
mSelectedItem = selectedItem;
}
private String getMenuItemTitle(int position) {
if (position >= 0 && position <= sections.length)
return sections[position];
return "Invalid section requested";
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Get item TextView
TextView view = (TextView) super.getView(position, convertView, parent);
view.setText(getMenuItemTitle(position));
if (position == mSelectedItem) {
view.setTextColor(getContext().getResources().getColor(R.color.green));
} else {
view.setTextColor(getContext().getResources().getColor(R.color.white)); }
return view;
}
}
Навигация ящик:
mDrawerListView.setAdapter(new NavigationDrawerAdapter(
getActionBar().getThemedContext(),
android.R.layout.simple_list_item_activated_1,
new String[]{
getString(R.string.title_home),
getString(R.string.title_stamp),
getString(R.string.title_scanner),
getString(R.string.title_setting),}) {
});
mDrawerListView.setItemChecked(mCurrentSelectedPosition, true);
return mDrawerListView;
..
...
private void selectItem(int position) {
mCurrentSelectedPosition = position;
if (mDrawerListView != null) {
mDrawerListView.setItemChecked(position, true);
}
if (mDrawerLayout != null) {
mDrawerLayout.closeDrawer(mFragmentContainerView);
}
if (mCallbacks != null) {
mCallbacks.onNavigationDrawerItemSelected(position);
}
}