Tóm lại câu trả lời cho câu hỏi của bạn là để thông báo cho hoạt động lưu trữ của bạn và sau đó có hoạt động lưu trữ thay thế vùng chứa phân đoạn hiện tại của bạn bằng FragmentManager.
Một trong những cách tiếp cận là tạo giao diện trong đoạn đầu tiên của bạn, đăng ký/lắng nghe hoạt động lưu trữ của bạn (thực hiện) với giao diện này và sau đó có FragmentManager của bạn để thay thế nội dung vùng chứa với đoạn thứ hai.
Tôi không chắc chắn về hướng dẫn, nhưng đây là đoạn mã của tôi: Đầu tiên Fragment
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;
}}
Hoạt động chủ
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
}}
Đây chỉ là một ví dụ về cách bạn muốn thực hiện giao diện, vui lòng dọn dẹp nó một mình. Và xin lưu ý rằng mặc dù điều này là không hiệu quả nếu bạn có rất nhiều mảnh muốn thông báo cho hoạt động chủ của bạn về một cái gì đó. làm như vậy sẽ dẫn bạn thực hiện nhiều người nghe khác nhau đến hoạt động chủ của bạn.
Nguồn
2012-02-01 14:21:43
Nhưng hướng dẫn đó hoàn toàn hợp lệ nếu bạn chỉ xem bố cục dọc. – Warpzit
@ Warpzit, nhưng hướng dẫn yêu cầu tôi tạo hai hoạt động trong bố cục dọc, mỗi hoạt động cho từng đoạn, phải không? –