2013-07-24 2 views
0

탐색 수단으로 슬라이딩 메뉴를 사용하는 응용 프로그램이 있습니다. 탐색 메뉴를 사용하여 전환하려는 세 가지 주요 단편이 있습니다. 현재 나는이 세 조각을 통해 순환 해야하는 하나의 MainActivity 있습니다. 문제는 세 가지 주요 단편 각각에서 단추를 클릭 할 때 다른 단편을 실행하고 주 단편을 스택에 놓아 다시 되돌려 야한다는 것입니다.한 활동에서 여러 조각 처리하기

메인 탐색을 사용하여 3 개의 주요 조각을 교환하고 각 주요 조각에서 하위 조각을 처리 할 수 ​​있도록이 탐색을 어떻게 관리 할 수 ​​있습니까?

충분히 명확하길 바랍니다.

답변

0

활동에 컨테이너를 사용해야합니다. 조각 FragmentManager를 대체 할 수 있습니다.

예를 들어 레이아웃 활동

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/fragmentContainer" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

</FrameLayout> 

그리고 당신의 활동 :

public abstract class SingleFragmentActivity extends Activity { 


    protected abstract Fragment replaceContentFragment(); 


    protected int getLayoutActivity() { 
     return R.layout.single_fragment_activity; 
    } 

    @Override 
    public void onCreate(Bundle saveInstanceState) { 
     super.onCreate(saveInstanceState); 
     this.setContentView(this.getLayoutActivity()); 
     this.addFragment(); 
    } 


    private void addFragment() { 
     FragmentManager fragmentManager = this.getFragmentManager(); 

     Fragment fragment = fragmentManager 
       .findFragmentById(R.id.fragmentContainer); 

     if (fragment == null) { 
      fragment = this.replaceContentFragment(); 
      fragmentManager.beginTransaction() 
        .add(R.id.fragmentContainer, fragment).commit(); 
     } 

    } 
} 

당신은 당신의 활동이 SingleFragmentActivity에서 상속과 replaceContentFragment 방법을 재정의 할 수 있습니다.

0

당신은 몇 가지 옵션이 있습니다 :

:

  • Interfaces
  • 제작을/첫 번째 옵션의 경우 Otto

를 사용하여 구독이 같은 Interface on the Fragment` 측면을 만들

public Temp foo; 

public interface Temp 
{ 
    public void tempSelected(int i); 
} 

그런 다음, 당신은이 같은 메소드 뭔가로 조각을 확장 :

public class MyMainActivity extends MyFragment.Temp 

이 당신이 온도가 제공하는 메소드를 오버라이드 (override) 할 것입니다.

두 번째 옵션은 Otto를 구독 및 제작 방법과 함께 사용하는 것입니다. 그것에 대한 가장 좋은 설명은 here입니다.

희망이 도움이됩니다.

관련 문제