2014-09-30 2 views
0

탐색보기를 부 풀리는 주요 활동 (활동 1)이 있습니다 (목록보기 항목 포함). 서랍은 프래그먼트 (MenuFragment)에 의해 실행되므로 어떤 항목이 선택되었는지에 따라 xml 레이아웃을 확장 할 수 있습니다. 이제 내 문제는 서랍이 MenuFragment에 의해 실행되고 조각에서 활동을 시작할 수 있기 때문에 사용자가 서랍에서 항목을 선택할 때 다른 활동 (활동 2)을 실행하는 방법입니다. 어떤 도움이라도 대단히 감사합니다. 미리 감사드립니다.다른 단편에서 단편을 실행하는 방법

답변

0

이 유형의 문제에 대한 일반적인 패턴은 프래그먼트 내에서 무언가가 발생했을 때 Activity에 통지해야하는 각 프래그먼트에 대한 리스너 인터페이스를 제공하는 것입니다. , 본질적으로

public class TestActivity extends Activity implements MenuFragment.Listener 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 

     // MenuFragment fragment = ...; 
     // fragment.setListener(this); 
    } 

    @Override 
    public void onDestroy() 
    { 
     // MenuFragment fragment = ...; 
     // fragment.setListener(null); 
     super.onDestroy(); 
    } 

    @Override 
    public void onDrawerItemSelected() 
    { 
     // TODO launch other activity here 
    } 
} 

당신의 활동 쇼를 운전하자

public class MenuFragment extends Fragment 
{ 
    public interface Listener 
    { 
     void onDrawerItemSelected(); 
    } 

    private Listener listener; 

    public void setListener(Listener listener) 
    { 
     this.listener = listener; 
    } 

    // When drawer item selected, do something like 
    // 
    // if (listener != null) 
    // { 
    // listener.onDrawerItemSelected(); 
    // } 
} 

귀하의 활동과 같이 보일 것입니다 : 같은

그래서 메뉴 조각은 무언가를 볼 수 있었다.

0

사용하는 인터페이스 당신은 당신의 조각에서 활동에 대한 인터페이스를 만들 필요가

Communicating between a fragment and an activity - best practices.

. 같은 뭔가 : 여기

public class MainActivity extends FragmentActivity implements MainFragment.getCommunication { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

//called from the MainFragment 
@Override 
public void TalkToMe() { 

    MainFragment MainFrag = (MainFragment)getFragmentManager().findFragmentById(R.id.fragment_main); 
    MainFrag.MyMainFragmentMethod(); 

    OtherFragment OtherFrag = (OtherFragment)getFragmentManager().findFragmentById(R.id.fragment_Other); 
    OtherFrag.MyMainFragmentMethod(); 



} 

} 

조각 클래스

public class MainFragment extends Fragment { 

//interface to the MainActivity activity class 
    private getFragmentCommunication listener; 

    public interface getCommunication { 
     public void TalkToMe(); 

    } 

} 

이에 대한 좋은 기사입니다 : http://www.vogella.com/articles/AndroidFragments/article.html.

관련 문제