NavigationDrawer RecyclerVer elementos seleccionados cambiar de color

Estoy intentando cambiar el textColor en mi NavigationDrawer cuando el artículo está seleccionado. Estoy utilizando RecyclerView como mi diseño del golpe. Esto se basa en el tutorial:

Android Getting Started with Material Design

Cualquiera puede sugerir la solución

Gracias por adelantado.

Defina un int estático en la clase NavigationDrawerAdapter para representar el elemento seleccionado

En NavigationDrawerAdapter.java

public class NavigationDrawerAdapter extends RecyclerView.Adapter<NavigationDrawerAdapter.MyViewHolder> { public static int selected_item = 0; ... @Override public void onBindViewHolder(MyViewHolder holder, int position) { NavDrawerItem current = data.get(position); holder.title.setText(current.getTitle()); if(position == selected_item) { holder.title.setTextColor(Color.RED); } else { holder.title.setTextColor(Color.BLACK); } } ... } 

En FragmentDrawer.java

 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { ... recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() { @Override public void onClick(View view, int position) { NavigationDrawerAdapter.selected_item = position; recyclerView.getAdapter().notifyDataSetChanged(); drawerListener.onDrawerItemSelected(view, position); mDrawerLayout.closeDrawer(containerView); } ... })); ... } 

He descubierto, cómo cambiar el color del texto, así como el color de toda la vista.

He actualizado tu FragmentDrawer.java

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflating view layout View layout = inflater.inflate(R.layout.fragment_navigation_drawer, container, false); recyclerView = (RecyclerView) layout.findViewById(R.id.drawerList); adapter = new NavigationDrawerAdapter(getActivity(), getData()); recyclerView.setAdapter(adapter); recyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerView.addOnItemTouchListener(new RecyclerTouchListener(getActivity(), recyclerView, new ClickListener() { @Override public void onClick(View view, int position) { view.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); ((TextView) view.findViewById(R.id.title)).setTextColor(getResources().getColor(R.color.material_blue_grey_800)); drawerListener.onDrawerItemSelected(view, position); mDrawerLayout.closeDrawer(containerView); } @Override public void onLongClick(View view, int position) { } })); return layout; } 

Lo que básicamente he hecho es, en el método onClick () de TouchListener.

 view.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); 

Esto cambiará el color de fondo de la vista

Del mismo modo desde que he hecho referencia a la vista , podría obtener referencia a la TextView que se utiliza dentro de la disposición de cajón.

 ((TextView) view.findViewById(R.id.title)).setTextColor(getResources().getColor(R.color.material_blue_grey_800)); 

Puedes hacerlo:

 public class MainActivity extends AppCompatActivity { ....... adapter.setOnItemClickLister(new MenuAdapter.OnItemSelecteListener() { View selectedView; @Override public void onItemSelected(View v, int position) { if(selectedView != null) selectedView.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.defaultColor)); v.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.orange)); selectedView = v; } }); } 
  • Cambio de color de la imagen en el cajón de navegación
  • ¿Cómo puedo cambiar el icono de actionbardrawertoggle, android?
  • Barra de herramientas que no aparece en los dispositivos pre lollipop
  • setSelection no funciona - getSelectedItemPosition siempre devuelve -1
  • Android NavigationDrawer transparencia
  • ¿Qué significa (savedInstanceState)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.