Android导航抽屉,更改文字/hover颜色

我有两个关于导航抽屉模板的问题,它给了android studio。

ScreenShot的应用程序

我想要更改菜单的文本颜色(“notre histoire”等)和所选项目的hover(这里是绿色,我希望以其他颜色制作)。

如您所见,我设法更改了操作栏的背景颜色(此处为粉红色)并更改菜单的背景(此处为蓝色)。

但在我的情况下,我没有找到如何更改文本颜色和所选项目的hover。

我的约束是我不能触摸xml文件。 我必须以编程方式完成它。

以下是我将菜单字符串提供给应用程序的方法:

String [] strTabMenu = new String[2]; strTabMenu[0] = "test1"; strTabMenu[1] = "test2"; mDrawerListView.setAdapter(new ArrayAdapter( getActionBar().getThemedContext(), android.R.layout.simple_list_item_activated_1, android.R.id.text1, strTabMenu)); 

那么,我现在如何使用一些代码行来更改文本颜色和hover颜色而无需创建/更新某些xml文件?

谢谢=)

您可以编写自己的列表适配器,而不是使用Android中的默认ArrayAdapter:

 public class DrawerListAdapter extends BaseAdapter{ private Context context; private String[] mTitle; private int[] mIcon; private LayoutInflater inflater; public DrawerListAdapter(Context pContext, String[] pTitle, int[] pIcon) { super(); context = pContext; mTitle = pTitle; mIcon = pIcon; } public View getView(int position, View convertView, ViewGroup parent) { inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View rootView = inflater.inflate(R.layout.navigation_drawer_list_item, parent, false); TextView txtTitle = (TextView) rootView.findViewById(R.id.drawer_text); ImageView imgIcon = (ImageView) rootView.findViewById(R.id.drawer_icon); if(((ListView)parent).isItemChecked(position)) { txtTitle.setTextColor(parent.getResources().getColor(R.color.DarkerRed)); } txtTitle.setText(mTitle[position]); imgIcon.setImageResource(mIcon[position]); return rootView; } @Override public int getCount() { return mTitle.length; } @Override public Object getItem(int position) { return mTitle[position]; } @Override public long getItemId(int position) { return position; } 

}

在if语句(isItemChecked)中,您现在可以更改文本视图的背景颜色。