如何在onMenuItemClick中调用FragmentManager? 我想在用户点击子菜单项后启动一个对话框。
我试过用:
Activity activity = (Activity) mContext;
但它会导致错误
java.lang.ClassCastException:android.view.ContextThemeWrapper无法强制转换为android.app.Activity
public class StudentFilterActionProvider extends ActionProvider implements MenuItem.OnMenuItemClickListener {
Context mContext;
/**
* Creates a new instance.
*
* @param context Context for accessing resources.
*/
public StudentFilterActionProvider(Context context) {
super(context);
mContext = context;
}
@Override
public View onCreateActionView() {
return null;
}
@Override
public boolean hasSubMenu() {
return true;
}
@Override
public void onPrepareSubMenu(SubMenu subMenu) {
// Only add item once, not every time the sub menu is clicked
if (subMenu.size() == 0) {
subMenu.add("Filter by status").setOnMenuItemClickListener(this);
subMenu.add("Filter by programme").setOnMenuItemClickListener(this);
}
}
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getTitle().toString()) {
case "Filter by status":
StudentStatusDialogFragment studentStatusDialogFragment = new StudentStatusDialogFragment();
// I want to get FragmentManager here to launch a dialog
return true;
case "Filter by programme":
return true;
}
return false;
}
}
答案 0 :(得分:0)
为什么不将代码更改为
Activity mContext;
/**
* Creates a new instance.
*
* @param context Context for accessing resources.
*/
public StudentFilterActionProvider(Activity context) {
super(context);
mContext = context;
}