我正在尝试从包含在Activity中的RecyclerView适配器中,在RecyclerView的元素被按下时启动一个Fragment,这是我现在的代码:
@Override
public void onClick(View v) {
Intent intent;
int position = getAdapterPosition();
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
String onoff = preferences.getString("it's", "");
if (onoff.equalsIgnoreCase("on")) {
if (position == 0) {
CategoriesRecyclerView.fragSubreddit = "aww";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 1) {
CategoriesRecyclerView.fragSubreddit = "food";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 2) {
CategoriesRecyclerView.fragSubreddit = "funny";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 3) {
CategoriesRecyclerView.fragSubreddit = "gaming";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
} else if (onoff.equalsIgnoreCase("off")) {
if (position == 0) {
CategoriesRecyclerView.fragSubreddit = "gaming";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 1) {
CategoriesRecyclerView.fragSubreddit = "funny";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 2) {
CategoriesRecyclerView.fragSubreddit = "food";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
if (position == 3) {
CategoriesRecyclerView.fragSubreddit = "aww";
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
}
}
}
我测试了我创建的一些“测试活动”,所以我知道除了片段启动之外,所有东西都正常工作。
错误就在这里:
intent = new Intent(context, MainFragment.class);
context.startActivity(intent);
我正在将Fragment作为Activity启动,因此当我运行应用程序时,它会崩溃并告诉我在清单文件中将MainFragment声明为Activity。
我该如何从我的Activity中启动该Fragment?
非常感谢。
getFragmentManager()
و›؟وچ¢Support try
م€‚ - Skizo-ozᴉʞS ツcontext.getSupportFragmentManager()
吗?不管怎样,您必须先调用您的上下文。 - Skizo-ozᴉʞS ツ