Android 如何从MainActivity到Fragment?
我启动了android studio,创建了一个新的项目文件->新建->导航抽屉活动,并为自己添加了一些有用的代码。现在我的代码运行良好。但代码中存在问题。我在工具栏中创建了一个菜单按钮,并为这个菜单按钮编写了代码 main.xmlmenu->main.xmlAndroid 如何从MainActivity到Fragment?,android,android-layout,android-fragments,android-menu,Android,Android Layout,Android Fragments,Android Menu,我启动了android studio,创建了一个新的项目文件->新建->导航抽屉活动,并为自己添加了一些有用的代码。现在我的代码运行良好。但代码中存在问题。我在工具栏中创建了一个菜单按钮,并为这个菜单按钮编写了代码 main.xmlmenu->main.xml <?xml version="1.0" encoding="utf-8"?> <menu xmlns:tools="http://schemas.android.com/
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/spinner"
android:title="Spinning"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:backgroundTint="#000000"
app:actionViewClass="android.widget.Spinner"
app:showAsAction="always" />
<item
android:id="@+id/action_cart"
android:icon="@drawable/card"
android:title="Cart"
app:actionLayout="@layout/custom_action_item_layout"
app:showAsAction="always" />
</menu>
Toast显示一个错误:
找不到显式活动类{}是否在AndroidManifest.xm中声明了此活动
当我按下menu按钮时,我想转到menu order,该代码是在MainActivity中编写的。我的错误在哪里?为什么意图不起作用?如何修复此错误?什么是fragment\u order.class?我打赌它不是活动,所以您无法找到显式活动类异常。碎片!=活动
一些关于碎片的文档
如果订单是一项活动,则:
改名
正如你的祝酒词所说:在AndroidManifest中声明此活动
您通常使用fragmentManager来更改片段。 意图用于启动活动、服务 您可以这样替换片段:
Fragment1 f1 = new Fragment1();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.f1_container, f1); // f1_container is your FrameLayout
container
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(myIntent);
您可以这样开始活动:
Fragment1 f1 = new Fragment1();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.replace(R.id.f1_container, f1); // f1_container is your FrameLayout
container
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
startActivity(myIntent);
你应该读一些基础知识。。。片段不是活动,不能通过意图更改。。。使用fragment Manager fragment_order它是fragment。因此您不能使用startActivity,因为它不是活动。。。阅读一些答案中链接的文档,了解如何处理碎片。简言之,您需要使用FragmentManager和FragmentTransaction将片段附加到已启动并正在运行的活动。布局中的某个容器要精确错误:不兼容类型:片段顺序无法转换为片段