Android:如何查找片段容器ID

时间:2014-08-28 06:33:11

标签: android android-fragments

在我的情况下,我想从一个片段移动到另一个片段。这应该在我单击ListView时完成。所以我在onItemClick中编写了片段事务代码。但我不知道如何找到我必须移动的片段的容器ID。

这是我的代码。

lv.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
            // TODO Auto-generated method stub
            Fragment fragment = new MeetingFragment();
            FragmentManager fragmentManager = getActivity().getFragmentManager();
            FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
            fragmentTransaction.replace(R.id.MEETING, fragment);
            fragmentTransaction.addToBackStack(null);
            fragmentTransaction.commit();
        }

    });

我想转到MeetingFragment。我必须在这个fragmentTransaction.replace(R.id .--------,fragment)行中给出什么id。请提出一个主意。提前谢谢。

2 个答案:

答案 0 :(得分:0)

首先定义布局。例如

<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" >

    <!-- The main content view -->

    <FrameLayout
        android:id="@+id/content_frame"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <!-- The navigation drawer -->

    <ListView
        android:id="@+id/left_drawer"
        android:layout_width="240dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/WhiteSmoke"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp" />

</android.support.v4.widget.DrawerLayout>

假设我想在Framelayout中更改片段,其id为'content_frame',如上所示。

然后相应的代码将是

      FragmentManager fragmentManager = getFragmentManager();
      FragmentTransaction fragmentTransaction =fragmentManager.beginTransaction();
      fragmentTransaction.replace(R.id.content_frame,new newFragment());
      fragmentTransaction.commit();

其中newFragment是您要移入的片段。

答案 1 :(得分:0)

保存片段的活动可能包含我们必须添加片段的布局ID。

例如我的活动持有碎片有  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/fragmentgroup" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:orientation="horizontal" > </LinearLayout>

在这种情况下你必须指定R.id.fragmentgroup。 ID是我们必须放置片段的布局