2017-04-30 57 views
-3

我有這個問題:當我改變片段時,下面的TextView保持不變,結果是2 TextView。更改片段,但文本雷達android

我清楚地解釋:

我有一個TextView的帶有字符串「Hello字」

當我改變片段我想改變整個頁面,並設置其它的TextView但結果是2的TextView

非常感謝!

activityMain.xml:

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fitsSystemWindows="true" 
    tools:openDrawer="start"> 

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

    <include 
     layout="@layout/app_bar_main" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/nav_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:fitsSystemWindows="true" 
     app:headerLayout="@layout/nav_header_main" 
     app:menu="@menu/activity_main_drawer"/> 

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

fragment.xml之:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
       android:orientation="vertical" 
       android:layout_width="match_parent" 
       android:gravity="center" 
       android:background="#5ba4e5" 
       android:layout_height="match_parent" 
       android:id="@+id/fragment"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textSize="40px" 
     android:textColor="#ffffff" 
     android:layout_gravity="center" 
     android:id="@+id/fragmentText" 
     /> 

</LinearLayout> 
在MainActivity

此改變的片段:

private void selectItem(int id) { 
     // update the main content by replacing fragments 
     Fragment fragment = new MyFragment(); 

     FragmentManager fragmentManager = getFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 
    } 

,這是MyFragment.java:

public class MyFragment extends Fragment { 

    public MyFragment() { 
     // Empty constructor required for fragment subclasses 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.fragment, container, false); 
     // String planet = getResources().getStringArray(R.array.planets_array)[i]; 
     String planet = "prova fragment"; 
     int imageId = getResources().getIdentifier(planet.toLowerCase(Locale.getDefault()), 
       "drawable", getActivity().getPackageName()); 
     ((TextView) rootView.findViewById(R.id.fragmentText)).setText(planet); 
     return rootView; 
    } 
} 
+0

你的代碼是什麼?如果你嘗試並有錯誤PLZ發送錯誤... –

+0

我嘗試把代碼,但StackOverflow說:「太多代碼」-.- –

+0

我不能添加更多的代碼.... –

回答

0

我使用:

fragmentManager.beginTransaction().replace(R.id.content_frame, fragment).commit(); 

但content_frame是的FrameLayout和片段是LinearLayout中,所以我改變content_frame與在content_main.xml一個LinearLayout中的ID和它的作品。