Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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
Java 未找到id为0x7f0b006b的从FragmentActivity到Fragment的视图_Java_Android_Android Fragments - Fatal编程技术网

Java 未找到id为0x7f0b006b的从FragmentActivity到Fragment的视图

Java 未找到id为0x7f0b006b的从FragmentActivity到Fragment的视图,java,android,android-fragments,Java,Android,Android Fragments,我正试图从碎片活动中打开一个片段。我已经申请了导航抽屉。在主活动中,我打开了FragmentActivity链接_New.java,我想在那里打开一个片段链接_Create.java 主导航绘图列表包含以下内容: <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/drawer_layout" a

我正试图从碎片活动中打开一个片段。我已经申请了导航抽屉。在主活动中,我打开了FragmentActivity链接_New.java,我想在那里打开一个片段链接_Create.java

主导航绘图列表包含以下内容:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="250dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/list_background"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/drawer_list_selector" />

</android.support.v4.widget.DrawerLayout>
因此,我得到以下错误:

04-07 13:36:19.142: E/AndroidRuntime(20620): FATAL EXCEPTION: main
04-07 13:36:19.142: E/AndroidRuntime(20620): Process: com.ylg.LINK, PID: 20620
04-07 13:36:19.142: E/AndroidRuntime(20620): java.lang.IllegalArgumentException: No view found for id 0x7f0b006b (com.ylg.LINK:id/frame_container) for fragment LINK_Create{3093cc8e #0 id=0x7f0b006b}
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:934)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1121)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1484)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:450)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.os.Handler.handleCallback(Handler.java:739)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.os.Handler.dispatchMessage(Handler.java:95)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.os.Looper.loop(Looper.java:135)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at android.app.ActivityThread.main(ActivityThread.java:5254)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at java.lang.reflect.Method.invoke(Native Method)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at java.lang.reflect.Method.invoke(Method.java:372)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
04-07 13:36:19.142: E/AndroidRuntime(20620):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
“我的链接新碎片”活动包含以下内容:

@Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        ActionBar actionBar = getActionBar();
        actionBar.setDisplayOptions(actionBar.getDisplayOptions() | ActionBar.DISPLAY_SHOW_CUSTOM);
        ImageView imageView = new ImageView(actionBar.getThemedContext());
        imageView.setScaleType(ImageView.ScaleType.CENTER);
        imageView.setImageResource(R.drawable.logoactionbar);
        ActionBar.LayoutParams layoutParams = new ActionBar.LayoutParams(ActionBar.LayoutParams.WRAP_CONTENT,  ActionBar.LayoutParams.WRAP_CONTENT, Gravity.END | Gravity.CENTER_VERTICAL);
        layoutParams.rightMargin = 20;
        imageView.setLayoutParams(layoutParams);
        actionBar.setCustomView(imageView);

        actionBar.setTitle(getResources().getString(R.string.account_anew));

        getActionBar().setDisplayHomeAsUpEnabled(true);
        getActionBar().setHomeButtonEnabled(true);
        getActionBar().setIcon(android.R.color.transparent);
        getActionBar().setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.backgroundcolor)));

        setContentView(R.layout.link_new)   
}
在LINK_New.java内部的BackPressed上,我调用片段:

@Override
    public void onBackPressed() 
    {
        super.onBackPressed();
         fragment = new LINK_Create();
        FragmentManager fragmentManager2 = getSupportFragmentManager();
        fragmentManager2.beginTransaction()
        .replace(R.id.frame_container, fragment).commit();
  }
我尝试了上所有可用的解决方案,因此我无法找到上述问题的解决方案

请帮忙


谢谢

您使用的是片段的片段管理器,而不是活动的片段管理器。因此,请使用活动的

碎片活动:

public void replaceWith(Fragment fragment) {
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.frame_container, fragment)
        .commit();
}
@Subscribe
public void onLinkFragmentBackPressed(LINK_New.BackPressedEvent e) {
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.frame_container, new LINK_Create())
        .commit();
}
片段:

@Override
public void onBackPressed() 
{
    ((YourFragmentActivity)getActivity()).replaceWith(new LINK_Create());
}
@Override
public void onBackPressed() {
    SingletonBus.INSTANCE.post(new BackPressedEvent());
}
无论如何,这是问题的快速解决办法

通常我会用Otto发送一个事件

碎片活动:

public void replaceWith(Fragment fragment) {
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.frame_container, fragment)
        .commit();
}
@Subscribe
public void onLinkFragmentBackPressed(LINK_New.BackPressedEvent e) {
    getSupportFragmentManager()
        .beginTransaction()
        .replace(R.id.frame_container, new LINK_Create())
        .commit();
}
片段:

@Override
public void onBackPressed() 
{
    ((YourFragmentActivity)getActivity()).replaceWith(new LINK_Create());
}
@Override
public void onBackPressed() {
    SingletonBus.INSTANCE.post(new BackPressedEvent());
}

你确定你的布局没有丢失带有R.id.frame\u容器id的视图吗?或者你调用这个东西太早了。显示的代码正常。请在添加前显示整个onCreate方法和在setContentView中设置的布局fragment@Ziem:布局如片段XML中所示:如果是这样,我不在那里构建容器。主导航抽屉具有框架_Container@EpicPandaForce:不明白您的问题是问链接\创建片段的代码还是片段活动我从中调用链接\创建的活动?看起来您没有理解java文件,或者我想我弄糊涂了,我将再次解释:链接\新建是一个FragmentActivity我想从这里调用或打开链接_Create,这是Fragment-当我在做上述关于我的问题的工作时,我没有得到任何意见。为什么我必须在Fragment内调用OnBackpressed.OnBackpressed在LINK\u New.java内,这是一个fragmentactivity当我按下back按钮时,我想打开LINK\u Create Fragment…..等等,LINK\u New是一个activity,LINK Create是一个Fragment?你真的需要一个更好的命名约定,是的。Link\u NEW是一个FragmentActivity,Link\u Create是Fragment。从Link\u NEW FragmentActivity,我试图通过按后退按钮转到Link\u Create Fragment。这就是我现在被困的地方。