首先需要写一个menu文件,每一个item代表菜单里的一项。
<?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/time"
android:title="按时间" />
<item
android:id="@+id/hot"
android:title="按热度" />
</menu>
然后实例化PopupMenu对象,通过该对象调用getMenuInfllater获得MenuInflater对象
再绑定menu文件
最后写点击事件
@OnClick(R.id.main_post_order)
public void orderOnClick(View v){
showOrderWayMenu(v);
}
private void showOrderWayMenu(View v){
final PopupMenu popupMenu=new PopupMenu(getActivity(),v);
popupMenu.getMenuInflater().inflate(R.menu.menu_order_post,popupMenu.getMenu());
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
if(item.getTitle().equals("按时间")){
Log.d("OrderPost","按时间");
return true;
}else if(item.getTitle().equals("按热度")){
return true;
}
return false;
}
});
popupMenu.show();
}