【发布时间】:2015-09-13 19:37:25
【问题描述】:
从包含在 Activity 中的 RecyclerView 的适配器,我试图在按下 RecyclerView 的元素时启动一个片段,这是我现在的代码:
@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?
非常感谢。
【问题讨论】:
标签: java android android-fragments android-intent android-activity