"java.lang.IllegalArgumentException: No view found for id 0x7f090057 for fragment" - Android 片段

"java.lang.IllegalArgumentException: No view found for id 0x7f090057 for fragment" - Android Fragment

目前正在开发一个应用程序,该应用程序有一个 MainActivity 和一个包含多个按钮的 Fragment。单击按钮时我无法启动另一个 activity。

我一直在这里收到错误提示

java.lang.IllegalArgumentException: No view found for id 0x7f090057 for fragment

我有两个class;一个 NavigationDrawer class(我的 MainActivity)

还有一个名为 StartingFragment 的 class(我想在抽屉处于 closed/not 活动状态时成为主视图)。

这是错误似乎引用的代码(来自 NavDrawer.java):

        /** Swaps fragments in the main content view */
        /** Starts an Activity when item is clicked */
        private void selectItem(int position) {
                // Create a new fragment and specify the tea type
                // to show based on position
                Fragment fragment = new StartingFragment();
                Bundle args = new Bundle();
                args.putInt(StartingFragment.TEA_TYPE_POS, position);
                fragment.setArguments(args);

                // Insert the fragment by replacing any existing fragment
                FragmentManager fragManager = getFragmentManager();
                fragManager.beginTransaction().replace(R.id.fragment_replace, fragment)
                                .commit();

                // Highlight the selected item, update the title, and close the drawer
                mDrawerList.setItemChecked(position, true);
                setTitle(navDrawerTitles[position]);
                navDrawerLayout.closeDrawer(mDrawerList);

        }

我在这里看了这个问题: 并且我看到 R.id.fragment_replace 应该是 a childR.layout.nav_drawer,这里是这样的。 几天前我也发布了一个非常相似的问题,虽然以前应用程序会从一开始就崩溃;现在它在 Button/AlertDialog 次点击时崩溃

但是,我不知道要在我的代码中调整什么。 每当我尝试从 StartingFragment.java & [=49 单击按钮(然后单击随后的 AlertDialog 的 neutral/positive 按钮)时,我都会收到此错误=]

Logcat 文字:

01-02 17:16:13.642: E/AndroidRuntime(26814): FATAL EXCEPTION: main 01-02 17:16:13.642: E/AndroidRuntime(26814): Process: com.fv4.tea.teatime.first, PID: 26814 01-02 17:16:13.642: E/AndroidRuntime(26814): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.fv4.tea.teatime.first/com.fv4.teatime.tea.app.OolongTeaActivity}: java.lang.IllegalArgumentException: No view found for id 0x7f090057 (com.fv4.tea.teatime.first:id/fragment_replace) for fragment StartingFragment{41c95b40 #0 id=0x7f090057} 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread.access0(ActivityThread.java:144) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.os.Handler.dispatchMessage(Handler.java:102) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.os.Looper.loop(Looper.java:136) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread.main(ActivityThread.java:5146) 01-02 17:16:13.642: E/AndroidRuntime(26814): at java.lang.reflect.Method.invokeNative(Native Method) 01-02 17:16:13.642: E/AndroidRuntime(26814): at java.lang.reflect.Method.invoke(Method.java:515) 01-02 17:16:13.642: E/AndroidRuntime(26814): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:796) 01-02 17:16:13.642: E/AndroidRuntime(26814): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:612) 01-02 17:16:13.642: E/AndroidRuntime(26814): at dalvik.system.NativeStart.main(Native Method) 01-02 17:16:13.642: E/AndroidRuntime(26814): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f090057 (com.fv4.tea.teatime.first:id/fragment_replace) for fragment StartingFragment{41c95b40 #0 id=0x7f090057} 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:882) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1062) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.BackStackRecord.run(BackStackRecord.java:684) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1447) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.Activity.performStart(Activity.java:5240) 01-02 17:16:13.642: E/AndroidRuntime(26814): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2178) 01-02 17:16:13.642: E/AndroidRuntime(26814): ... 11 more

您不能替换静态放置在 xml 布局文件中的片段。您应该在布局中创建一个容器(例如 ViewGroup),然后使用 FragmentTransaction 以编程方式添加片段。

我刚刚解决了这个问题!我在我所有的 类 上都写了 extends NavigationDrawer,所以当我将其更改为 extends Activity 时,问题就解决了,现在一切正常。一切就绪。