lundi 26 janvier 2015

How to implement onBackPressed's alternative way/method in Fragment?


when i click 3 tab one by one then if i click back button then not directly back/finish screen, but after multiple times click back button then finish screen.

my code:


public class AddToListFragment extends Fragment { public TabHost tabHost; public View rootView;



@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {

rootView = inflater.inflate(R.layout.fragment_tap_host, container,
false);
tabHost = (TabHost) rootView.findViewById(R.id.tabHost);
tabHost.setup();
// SMSReaderFragment v = new SMSReaderFragment();
// getFragmentManager().beginTransaction()
// .replace(R.id.tab1, v, "YOUR_TARGET_FRAGMENT_TAG")
// .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();
//
//
// CallReaderFragment v1 = new CallReaderFragment();
// getFragmentManager().beginTransaction()
// .replace(R.id.tab2, v1, "YOUR_TARGET_FRAGMENT_TAG")
// .addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();

// // first tab
// TabSpec spec1 = tabHost.newTabSpec("spec1");
// spec1.setIndicator("",
// getResources().getDrawable(R.drawable.ic_action_copy));
// Intent toABC = new Intent(getActivity(), AddBlackList.class);
// spec1.setContent(toABC);
//
// TabSpec spec2 = tabHost.newTabSpec("specee");
// spec2.setIndicator("",
// getResources().getDrawable(R.drawable.ic_launcher));
// Intent toABCq = new Intent(getActivity(), AddWhiteList.class);
// spec1.setContent(toABCq);

TabHost.TabSpec spec1, spec2, spec3;

spec1 = tabHost.newTabSpec("spec1");
spec1.setContent(R.id.tab1);
// how to open ABC.java file
spec1.setIndicator("Blacklist");
tabHost.addTab(spec1);

spec2 = tabHost.newTabSpec("spec2");
spec2.setContent(R.id.tab2);
spec2.setIndicator("Whitelist");
tabHost.addTab(spec2);

spec3 = tabHost.newTabSpec("spec3");
spec3.setContent(R.id.tab3);
spec3.setIndicator("Manual");
tabHost.addTab(spec3);

Fragment blacklist = new AddBlackListFragment();
getFragmentManager().beginTransaction()
.replace(R.id.tab1, blacklist, "YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG").commit();

tabHost.setOnTabChangedListener(new OnTabChangeListener() {

@Override
public void onTabChanged(String tabId) {
if (tabId.equals("spec1")) {
Fragment blacklist = new AddBlackListFragment();
getFragmentManager()
.beginTransaction()
.replace(R.id.tab1, blacklist,
"YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG")
.commit();
} else if (tabId.equals("spec2")) {
Fragment whitelist = new AddWhiteListFragment();
getFragmentManager()
.beginTransaction()
.replace(R.id.tab2, whitelist,
"YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG")
.commit();

} else if (tabId.equals("spec3")) {
Fragment whitelist = new AddManualFragment();
getFragmentManager()
.beginTransaction()
.replace(R.id.tab3, whitelist,
"YOUR_TARGET_FRAGMENT_TAG")
.addToBackStack("YOUR_SOURCE_FRAGMENT_TAG")
.commit();
} else {

}

}
});

return rootView;
}

@Override
public void onDetach() {
super.onDetach();
Toast.makeText(getActivity(), "Helooo", Toast.LENGTH_LONG).show();
}

@Override
public void onDestroyView() {
super.onDestroyView();
rootView = null;
Toast.makeText(getActivity(), "hello", Toast.LENGTH_LONG).show();
}


}


I want to finish directly when click back Button. how to implements it. please help me.





Aucun commentaire:

Enregistrer un commentaire