2014-11-05 2 views
0

서랍 내용을 동적으로 변경해야합니다. 나는 조각으로 할 계획이다. 서랍의 견해를 바꾸기 위해 새로운 파편이 시작됩니다. 실제로 내 서랍 자체 조각.조각을 사용하여 서랍의 내용을 동적으로 변경하십시오.

@Override 
public void onActivityCreated (Bundle savedInstanceState) 
{ 
    super.onActivityCreated(savedInstanceState); 
    LinearLayout helpLL = (LinearLayout) getView().findViewById(R.id.helpLL); 
    helpLL.setOnClickListener(new OnClickListener() 
    {   
     @Override 
     public void onClick(View v) 
     { 
       Fragment detail = new DetailFragment(); 
       FragmentManager fragmentManager = getFragmentManager(); 
       fragmentManager.beginTransaction().replace(R.id.left_drawer, detail).commit();         
     } 
    }); 
} 

이 레이아웃으로 전체 서랍보기를 변경해야합니다. left_drawer는 첫 번째 조각이있는 main.xml의 뷰입니다. 그러나 클릭하면 아무 일도 일어나지 않습니다.

이 코드를 잘못 읽었 으면 알려주세요.

감사 Jomia

+0

변화 란 무엇을 의미합니까? 당신이 뭔가를 추가하고 있습니다.? – Riser

+0

첫 번째 조각에서 새 조각을 시작하는 것을 의미합니다. 두 번째 조각은 완전히 다른 시각과 기능을 가지고 있습니다. 두 번째보기가 첫 번째보기를 대체해야합니다. – Jomia

+0

왜 파편으로 그렇게하고 싶습니까? 왜 당신의 인생을 복잡하게 만드나요? – pskink

답변

2

나는 마침내 해결책을 발견. 나는 내 코드에서 실수를했다. 실제로 나는 첫 번째 서랍을 위해 xml의 조각을 하드 코딩했다. XML로 하드 코딩 된 단편은 대체 할 수 없습니다. 두 번째 조각이 만들어지지 않은 이유입니다.

그래서 첫 번째 조각을 동적으로 추가했습니다. 지금은 ...

 FragmentManager fragmentManager = getFragmentManager(); 
     FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
     settingsFragment = new SettingsFragment(); 
     fragmentTransaction.add(R.id.left_drawer, settingsFragment, "settingsFragment"); 
     fragmentTransaction.commit(); 

@Override 
    public void onActivityCreated (Bundle savedInstanceState) 
    { 
     super.onActivityCreated(savedInstanceState); 
     LinearLayout helpLL = (LinearLayout) getView().findViewById(R.id.helpLL); 
     helpLL.setOnClickListener(new OnClickListener() 
     {   
      @Override 
      public void onClick(View v) 
      {   
       Fragment detail = new DetailFragment(); 
       FragmentManager fragmentManager = getFragmentManager();    
       fragmentManager.beginTransaction().replace(R.id.left_drawer, detail,"Details").commit(); 
      } 
     }); 
    } 

그게 모든 SettingsFragment.java 활동에 main.xml에

<LinearLayout android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:id="@+id/left_drawer" 
     android:layout_weight="1" 
     android:layout_gravity="right" 
     android:orientation="vertical"> 
    </LinearLayout> 

에서

.. 잘 작동

관련 문제