मेरे पास एक गतिविधि के अंदर कई टुकड़े हैं। एक बटन पर क्लिक करके मैं एक नया टुकड़ा शुरू कर रहा हूं, इसे बैकस्ट में जोड़ रहा हूं। मुझे स्वाभाविक रूप onPause()
से वर्तमान फ्रेगमेंट की विधि की उम्मीद थी औरonResume()
नए फ्रैगमेंट । खैर यह नहीं हो रहा है।
LoginFragment.java
public class LoginFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.login_fragment, container, false);
final FragmentManager mFragmentmanager = getFragmentManager();
Button btnHome = (Button)view.findViewById(R.id.home_btn);
btnHome.setOnClickListener(new View.OnClickListener() {
public void onClick(View view){
HomeFragment fragment = new HomeFragment();
FragmentTransaction ft2 = mFragmentmanager.beginTransaction();
ft2.setCustomAnimations(R.anim.slide_right, R.anim.slide_out_left
, R.anim.slide_left, R.anim.slide_out_right);
ft2.replace(R.id.middle_fragment, fragment);
ft2.addToBackStack("");
ft2.commit();
}
});
}
@Override
public void onResume() {
Log.e("DEBUG", "onResume of LoginFragment");
super.onResume();
}
@Override
public void onPause() {
Log.e("DEBUG", "OnPause of loginFragment");
super.onPause();
}
}
HomeFragment.java
public class HomeFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.login_fragment, container, false);
}
@Override
public void onResume() {
Log.e("DEBUG", "onResume of HomeFragment");
super.onResume();
}
@Override
public void onPause() {
Log.e("DEBUG", "OnPause of HomeFragment");
super.onPause();
}
}
मुझे क्या उम्मीद थी,
- जब बटन क्लिक किया, LoginFragment के साथ बदल जाता है
HomeFragment ,
onPause()
की LoginFragment , औरonResume()
की HomeFragment कहा जाता हो जाता है - जब वापस दबाया जाता है, HomeFragment बाहर poped जाता है और LoginFragment , और देखा जाता है
onPause()
की HomeFragment औरonResume()
की LoginFragment कहा जाता हो जाता है।
मुझे जो मिल रहा है,
- जब बटन पर क्लिक किया जाता है, तो HomeFragment सही तरीके से LoginFragment की जगह ले रहा है , onResume () HomeFragment को कहते हैं, लेकिन LoginFragment के onPause () पर कभी नहीं कहा जाता है।
- जब वापस दबाया, HomeFragment सही ढंग से प्रकट करने के लिए पॉपिंग है LoginFragment , onPause () की HomeFragment बुलाया जाता है, लेकिन onResume (के) LoginFragment कभी नहीं कहा जाता हो जाता है।
क्या यह सामान्य व्यवहार है? क्यों है onResume()
की LoginFragment बुलाया नहीं हो रही है जब मैं वापस बटन दबाएँ।