2014-08-28 69 views
0

在我的情況下,我想從一個片段移動到其他片段。這應該完成,當我點擊ListView。所以我已經在onItemClick中寫入了片段事務代碼。但我不知道,如何找到我必須移動的片段的容器ID。Android:如何查找片段容器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。請給出一個想法。提前致謝。

+0

爲什麼要使用FragmentTransaction.replace?也許你應該只是開始活動insted? – pskink 2014-08-28 06:38:09

+0

你有沒有試過android.R.id.content? – 2014-08-28 06:38:37

+0

我覺得你已經實現了一個有回調的活動接口,當項目點擊並嘗試在那裏替換你的新的片段代碼。 – 2014-08-28 06:42:54

回答

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是要在移動的片段。

0

您的活動持片段可以包含一個佈局ID來我們有添加我們的碎片。

例如我的活動持fragmets有 <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是我們必須放置片段的佈局

相關問題