Nó chỉ đơn giản nếu bạn có một Hoạt động A và bạn thực hiện 3 mảnh như B, C và Home_Fragment. Bây giờ, nếu bạn đang ở trong đoạn B hoặc C và nhấn nút quay lại, bạn muốn di chuyển trên Home_Fragment mỗi lần.
Sau đó, bạn phải chỉ ghi đè lên các phương pháp onBackPressed()
trong Hoạt động A và cũng có khi bạn nhảy đến bất kỳ mảnh, sau đó đưa ra một TAG hoặc tên cụ thể, bạn sẽ nhận ra rằng trong đoạn Hoạt động A.
tôi đưa ra Ví dụ bạn có thể dễ dàng hiểu được:
Chuyển từ hoạt động từ A đến C Fragment
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new C_fragment(),"xyz").commit();
}
hoặc nếu bạn đang di chuyển từ đoạn B để mảnh C, và trên báo chí trở lại, bạn muốn đến trên Fragment D, làm như dưới đây:
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
getActivity().getSupportFragmentManager().beginTransaction()
.add(R.id.container, new C_frament(), "xyz").commit();
((ActionBarActivity) getActivity()).getSupportActionBar().setTitle("Fragment C");
}
});
Bây giờ bạn phải chỉ ghi đè onBackPressed() phương pháp trong hoạt động chính như sau:
@Override
public void onBackPressed() {
FragmentManager fragmentManager =getSupportFragmentManager();
if (((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")) != null
&& ((C_fragment) getSupportFragmentManager().findFragmentByTag("xyz")).isVisible()) {
Fragment fragment = new Home_Fragment();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
getSupportActionBar().setTitle("Home fragment ");
} else {
super.onBackPressed();
}
}
Nguồn
2015-05-04 07:13:34
u có thể giữ nút khi nút nhấn tự động chuyển đến trang hme ... Intent i = new Intent (AccountActivity.this, ContactsActivity.class); startActivity (i); – shassss
"Nhưng tôi muốn khi người dùng nhấn nút quay lại, thay vì hoạt động trước đó, ứng dụng sẽ chuyển đến Màn hình chính" - vì không chắc người dùng * sẽ muốn điều này, tại sao bạn cho rằng đây là hành vi chính đáng? – CommonsWare
hoạt động tôi đang đề cập đến là màn hình trình phát của trình phát nhạc. Tôi muốn khi người dùng chọn một bài hát từ danh sách phát thì ứng dụng sẽ chuyển đến PlayerActivty. Nhưng khi nút quay lại được nhấn từ trình phát thì luồng sẽ chuyển sang màn hình chính hoặc một số ứng dụng khác mà người dùng đã mở trước đó.Hy vọng tôi đã giải thích câu hỏi. – reiley