간단히 말해서 질문에 대한 대답은 호스트 활동을 알리고 FragmentManager를 사용하여 현재의 조각 컨테이너를 호스트 활동으로 대체하는 것입니다.
첫 번째 단편에 인터페이스를 만들고 호스트 활동을이 인터페이스에 등록/수신 (구현) 한 다음 FragmentManager를 사용하여 컨테이너 내용을 수신기 콜백의 두 번째 조각으로 바꿉니다.
내가 여기에 튜토리얼에 대한 모르겠지만 내 조각입니다 : 첫 번째 조각
public class First extends Fragment{
private static onMySignalListener listener;
//call this function from whatever you like i.e button onClickListener
public void switchWindow() {
if(listener != null){
listener.onMySignal();
}
}
public interface onMySignalListener {
//customize this to your liking
//plain without argument
void onMySignal();
//with argument
void onMySignalWithNum(int mNum);
}
public static void setOnMySignalListener(onMySignalListener listener) {
First.listener = listener;
}}
호스트 활동
public class HostActivity extends FragmentActivity implements onMySignalListener{
private final String ADD_TAG_IF_NECESSARY = "mTag";
@Override
public void onCreate(Bundle ssi) {
setContentLayout(R.layout.main);
FirstFragment.setOnMySignalListener(this);
}
@Override
public void onMySignal() {
//if you're using compat library
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
//initialize your second fragment
sfragment = SecondFragment.newInstance(null);
//replace your current container being most of the time as FrameLayout
transaction.replace(R.id.container, fragment, ADD_TAG_IF_NECESSARY);
transaction.commit();
}
@Override
public void onMySignalWithNum(int mNum) {
//you can do the same like the above probably with your own customization
}}
이, 친절하게 당신이 인터페이스를 구현하는 것입니다 방법에 대한 예에 불과 너 자신에 의해 그것을 정돈해라. 그리고 호스트 활동에 대해 알리고 자하는 많은 프래그먼트가있는 경우이 방법은 효과가 없습니다. 그렇게하면 호스트 활동에 다양한 청취자를 구현하게됩니다.
하지만 자습서는 인물 사진 레이아웃 만 보는 경우 완벽하게 유효합니다. – Warpzit
@ Warpzit,하지만 자습서에서는 세로 레이아웃으로 두 개의 액티비티를 만들 것을 권합니다. 각 액티비티마다 하나씩 있습니다. –