【发布时间】:2016-12-30 12:18:16
【问题描述】:
我想要这样的弹出菜单
点击按钮后显示
XML
<item
android:state_pressed="true"
android:id="@+id/fromFirstMonth"
android:title="از ابتدای سال"
android:drawable="@drawable/nav_item_background"/>
<item
android:state_pressed="true"
android:id="@+id/currentMonth"
android:title="این ماه"
android:drawable="@color/blueMenu"/>
<item
xmlns:showAsAction="always"
android:id="@+id/currentSession"
android:title="این فصل"
android:drawable="@color/white"/>
<item
xmlns:showAsAction="always"
android:id="@+id/selection"
android:title="تانتخابی"
android:drawable="@color/blueMenu"/>
</menu>
Java
hourglass.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//Creating the instance of PopupMenu
PopupMenu popup = new PopupMenu(Products.this, hourglass);
//Inflating the Popup using xml file
popup.getMenuInflater().inflate(R.menu.hourglass_item, popup.getMenu());
//registering popup with OnMenuItemClickListener
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
Toast.makeText(Products.this, "You Clicked : " + item.getTitle(), Toast.LENGTH_SHORT).show();
return true;
}
});
popup.show();//showing popup menu
}
});
我想为每个项目设置不同的背景颜色。我设置了android:drawable,但这不起作用。
我可以使用此代码更改文本颜色,但我不知道如何更改背景颜色项目
Menu menu=popup.getMenu();
MenuItem item = menu.getItem(0);
SpannableString s = new SpannableString("My red MenuItem");
s.setSpan(new ForegroundColorSpan(Color.RED), 0, s.length(), 0);
item.setTitle(s);
【问题讨论】: