Android 无法设置操作栏背景颜色和选定的listview颜色
我使用了以下代码:Android 无法设置操作栏背景颜色和选定的listview颜色,android,android-layout,android-listview,android-styles,android-menu,Android,Android Layout,Android Listview,Android Styles,Android Menu,我使用了以下代码: listview.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() { @Override public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) { final int
listview.setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
final int checkedCount = listview.getCheckedItemCount();
mode.setTitle(checkedCount + " Selected");
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.mymenu, menu);
return true;
}
@Override
public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
switch (item.getItemId()) {
case R.id.delete:
//my delete code
mode.finish();
return true;
default:
return false;
}
}
@Override
public void onDestroyActionMode(ActionMode mode) {
//
}
});
mymenu.xml:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/delete"
android:icon="@android:drawable/ic_menu_delete"
android:title="Delete"
app:showAsAction="always"
/>
</menu>
styles.xml:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:actionModeBackground">@android:color/holo_blue_dark</item>
<item name="android:actionModeStyle">@style/TestActionModeStyle</item>
</style>
<style name="TestActionModeStyle">
<item name="android:titleTextStyle">@style/TestTitleStyle</item>
<item name="android:subtitleTextStyle">@style/TestSubTitleStyle</item>
</style>
<style name="TestTitleStyle">
<item name="android:textColor">@android:color/black</item>
<item name="android:background">@android:color/holo_red_dark</item>
</style>
<style name="TestSubTitleStyle">
<item name="android:textColor">@android:color/black</item>
<item name="android:background">@android:color/holo_green_dark</item>
</style>
@android:color/holo_blue_深色
@样式/测试样式
@样式/测试标题样式
@风格/测试风格
@android:彩色/黑色
@安卓:彩色/全息红/暗
@android:彩色/黑色
@安卓:彩色/全息绿/深色
当我长按listview时,项目被选中,菜单中带有删除按钮。但我无法设置整个菜单的颜色,所选的listview项目也不会反映出来
菜单背景色为白色,所选listview项也为白色
因此,我想更改菜单颜色和listview颜色中的选定项
从上面的代码来看,它不工作
如何解决此问题?检查此答案以了解问题的菜单部分: 此答案用于更改选定的listview项目 为了完整起见,这里列出这些问题中与您相关的部分: 菜单(注意,他们提到了Actionbar,但菜单也包括在内): 有一种简单的方法可以在Actionbar使用中更改颜色 发电机 但是,由于您已经有了一个样式,您只想更新菜单,就像链接问题中的进一步内容一样: 在样式生成器中,相关设置为弹出颜色,该颜色 影响“溢出菜单、子菜单和微调器面板背景” 继续生成zip,但是在生成的所有文件中,您 只需要一个图像,菜单\下拉菜单\面板\示例9.png,它 看起来像这样: 因此,将它的不同分辨率版本添加到res/drawable-*。 (或者将它们重命名为menu_dropdown_panel.9.png。) 然后,作为一个例子,在res/values/themes.xml中 以下是android:popupMenuStyle和android:popupBackground 正在进行关键设置
<style name="MyAppActionBarTheme" parent="android:Theme.Holo.Light">
<item name="android:popupMenuStyle">@style/MyApp.PopupMenu</item>
<item name="android:actionBarStyle">@style/MyApp.ActionBar</item>
</style>
<!-- The beef: background color for Action Bar overflow menu -->
<style name="MyApp.PopupMenu" parent="android:Widget.Holo.Light.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_dropdown_panel</item>
</style>
<!-- Bonus: if you want to style whole Action Bar, not just the menu -->
<style name="MyApp.ActionBar" parent="android:Widget.Holo.Light.ActionBar.Solid">
<!-- Blue background color & black bottom border -->
<item name="android:background">@drawable/blue_action_bar_background</item>
</style>
但我有没有动作条的风格。我不能改变基本主题。是的,关于这个问题你必须读得更深入一点。我会更新我的答案。我已经试过了。但我仍然没有找到解决办法。
OnItemClickListener listViewOnItemClick = new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapter, View arg1, int position, long id) {
mSelectedItem = position;
mAdapter.notifyDataSetChanged();
}
};
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final View view = View.inflate(context, R.layout.item_list, null);
if (position == mSelectedItem) {
// set your color
}
return view;
}