Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.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 在ListFragment和Fragment之间导航_Java_Android_Listview_Android Fragments_Fragment - Fatal编程技术网

Java 在ListFragment和Fragment之间导航

Java 在ListFragment和Fragment之间导航,java,android,listview,android-fragments,fragment,Java,Android,Listview,Android Fragments,Fragment,我的学校作业有一个包含ListFragment和Fragment的活动。MainActivity创建ListFragment,然后列表上的每个项目都应该打开仅包含图片的常规片段,然后当我单击图片时,它应该返回ListFragment 在所有情况下,我都使用以下代码调用片段(当然是针对特定情况编辑的): 它调用片段OK,除了第二个片段将出现在ListFragment上,并且在第二个片段打开时,我仍然可以从列表中选择内容。每次导航时是否需要创建新的片段对象?如何从它自己的onclick侦听器中禁用/

我的学校作业有一个包含ListFragment和Fragment的活动。MainActivity创建ListFragment,然后列表上的每个项目都应该打开仅包含图片的常规片段,然后当我单击图片时,它应该返回ListFragment

在所有情况下,我都使用以下代码调用片段(当然是针对特定情况编辑的):

它调用片段OK,除了第二个片段将出现在ListFragment上,并且在第二个片段打开时,我仍然可以从列表中选择内容。每次导航时是否需要创建新的片段对象?如何从它自己的onclick侦听器中禁用/启用片段

main_activity.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >
<fragment
    android:name="com.example.w0068332.fragmentstest.FragmentOne"
    android:id="@+id/fragment_place"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

</LinearLayout>

1-是的,您需要为每个项目创建一个片段

                    Bundle arguments = new Bundle();
                    arguments.putInt(FragmentTwo.ARG_ITEM_ID,R.drawable_pic);
                    FragmentTwo fragment = new FragmentTwo();
                    fragment.setArguments(arguments);
                    getSupportFragmentManager().beginTransaction()
                            .replace(R.id.item_detail_container, fragment)
                            .commit();
我想您应该显示参考资料中的图片

2-在显示第二个时禁用从ListFragment中选择。 在第二个片段的父布局中,您必须添加背景并使其可单击,如下所示:

android:background="@color/white"
android:clickable="true"
3-要导航回ListFragment,请为活动的ImageView和onBackPressed添加一个单击侦听器:

getActivity().onBackPressed();
您还可以查看来自Android studio的Master and details活动模板

活动如何插入ListFragment?它是在活动的布局xml中,还是通过碎片事务以编程方式添加?发布活动和xml布局代码可能会有所帮助。@Benstrom我已经添加了main_activity.xml,正如您所看到的,有一个片段项将这些片段放入其中。在OnCreateofMainActivity中,我使用(基本上)第一段代码将片段(fragOne)放在适当的位置。谢谢!我真正需要的部分是getActivity().onBackPressed();。我想这是因为我把第一个片段的第二个实例放在上面,并不断地构建新的片段。
getActivity().onBackPressed();