Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从MainActivity到Fragment?_Android_Android Layout_Android Fragments_Android Menu - Fatal编程技术网

Android 如何从MainActivity到Fragment?

Android 如何从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/

我启动了android studio,创建了一个新的项目文件->新建->导航抽屉活动,并为自己添加了一些有用的代码。现在我的代码运行良好。但代码中存在问题。我在工具栏中创建了一个菜单按钮,并为这个菜单按钮编写了代码

main.xmlmenu->main.xml

<?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将片段附加到已启动并正在运行的活动。布局中的某个容器要精确错误:不兼容类型:片段顺序无法转换为片段