1
Как вызвать FragmentManager в onMenuItemClick? Я хочу запустить диалог после того, как пользователь нажмет на элемент подменю.Можно ли вызвать FragmentManager из ActionProvider?
Я пытался использовать:
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;
}
Даже если я еще не смог вызвать getFragmentManager –
Затем создайте свой контекст типа 'FragmentActivity'. Проверьте этот ответ http://stackoverflow.com/a/21249790/4795214 –
Это не имеет никакого значения, FragmentActivity используется для поддержки .v4 –