我是使用 ActionBar 和 SherlockActionBar 的新手。
我想要做的是在 ActionBar(AB) 中添加一个“菜单”,当点击子菜单项时改变他的背景颜色,不要关闭菜单。
原因是因为我会尝试做某种类型的“过滤器”
我添加了代码,应该更改背景颜色,但我不知道该怎么做。
单击项目时不关闭菜单的选项我不知道是否可能,因为我从未见过它。
public class MainActivity extends SherlockActivity{
ActionBar actionBar;
boolean boolSubitem1;
boolean boolSubitem2;
boolean boolSubitem3;
boolean boolSubitem4;
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(R.style.Sherlock___Theme_Light);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
boolSubitem1 = false;
boolSubitem2 = false;
boolSubitem3 = false;
boolSubitem4 = false;
actionBar = getSupportActionBar();
actionBar.setTitle("Testing");
actionBar.setSubtitle("Miau");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.item1:
return true;
case R.id.subitem1:
if(boolSubitem1) {
//CHANGE BACKGROUNDCOLOR
}
return true;
case R.id.subitem2:
if(boolSubitem2) {
//CHANGE BACKGROUNDCOLOR
}
return true;
case R.id.subitem3:
if(boolSubitem3) {
//CHANGE BACKGROUNDCOLOR
}
return true;
case R.id.subitem4:
if(boolSubitem4) {
//CHANGE BACKGROUNDCOLOR
}
return true;
}
return super.onOptionsItemSelected(item);
}
}
以及菜单的 XML 文件:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/item1"
android:orderInCategory="0"
android:title="Test1"
android:showAsAction="ifRoom">
<menu>
<item
android:id="@+id/subitem1"
android:title="SubMenu1"/>
<item
android:id="@+id/subitem2"
android:title="SubMenu2"/>
<item
android:id="@+id/subitem3"
android:title="SubMenu3"/>
<item
android:id="@+id/subitem4"
android:title="SubMenu4"/>
</menu>
</item>
</menu>
谢谢大家!