when I press on Back Button my app is closing, so I did some research about it, I found: How to handle back button in activity and How to catch device back button event in android? :
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
//do your stuff
}
return super.onKeyDown(keyCode, event);
}
But I get : "Cannot resolve method onKeyDown..."
My fragment:
public class NosOffres extends android.support.v4.app.Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.activity_nosoffres, container, false);
TextView firstTitle = (TextView) view.findViewById(R.id.firstTitle);
firstTitle.setText(Html.fromHtml("<b>" + "<font color=#263355>RACHAT DE PRÊTS IMMOBILIER</font>" + "</b>"));
firstTitle.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView firstText = (TextView) view.findViewById(R.id.firstText);
firstText.setText(Html.fromHtml("<font color=#5D5D5C>Opération qui permet de rassembler des crédits immobilier et des crédits à la consommation sur un seul nouveau contrat incluant une nouvelle durée de remboursement et une mensualité réduite.<br/><br/>Le financement est immobilier lorsque la part des encours immobiliers à reprendre est supérieure à 60% par rapport au total des capitaux à reprendre.</font>"));
firstText.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView firstDetail = (TextView) view.findViewById(R.id.firstDetail);
firstDetail.setText(Html.fromHtml("<font color=#263355>Taux :" + "<b>" + " fixe ou révisable" + "</b><br/>" +
"Durées :" + "<b>" + " de 60 à 420 mois" + "</b><br/>" +
"Assurance :" + "<b>" + " facultative</font>" + "</b>"));
firstDetail.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView secondTitle = (TextView) view.findViewById(R.id.secondTitle);
secondTitle.setText(Html.fromHtml("<b>" + "<font color=#263355>RACHAT DE PRÊTS CONSOMMATION</font>" + "</b>"));
secondTitle.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView secondText = (TextView) view.findViewById(R.id.secondText);
secondText.setText(Html.fromHtml("<font color=#5D5D5C>Opération qui permet de rassembler des crédits à la consommation sur un seul nouveau contrat incluant une nouvelle durée de remboursement et une mensualité réduite.<br/><br/>Le financement est à la consommation lorsque la part des encours immobiliers à reprendre est inférieure à 60% par rapport au total des capitaux à reprendre.</font>"));
secondText.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView secondDetail = (TextView) view.findViewById(R.id.secondDetail);
secondDetail.setText(Html.fromHtml("<font color=#263355>Taux :" + "<b>" + " fixe ou révisable" + "</b><br/>" +
"Durées :" + "<b>" + " à partir de 12 mois" + "</b><br/>" +
"Assurance :" + "<b>" + " facultative</font>" + "</b>"));
secondDetail.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView textView =(TextView)getActivity().findViewById(R.id.main_toolbar_title);
textView.setText(getString(R.string.title_nosoffres));
textView.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
return view;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ImageView formulaire = (ImageView) getView().findViewById(R.id.formulaire);
formulaire.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.solutis.fr/demande-rachat-credit.html/#utm_source=googleplay&utm_medium=application&utm_campaign=application-solutis-android")));
}
});
}
}
I wan't to go in this fragment:
public class Accueil extends android.support.v4.app.Fragment {
//Lors de la creation de la vue, on va attribuer a chaque zone de texte, le texte voulu avec un type particulier (font family...)
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//placer ici le code pour connaitre la densite et la resolution de lecran
View view = inflater.inflate(R.layout.activity_accueil, container, false);
TextView topTextL1 = (TextView) view.findViewById(R.id.topTextL1);
topTextL1.setText(Html.fromHtml("<font color=#263355>VOTRE EXPERT DU</font>"));
topTextL1.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView topTextL2 = (TextView) view.findViewById(R.id.topTextL2);
topTextL2.setText(Html.fromHtml("<b>" + "<font color=#263355> REGROUPEMENT DE CRÉDITS </font>" + "</b>"));
topTextL2.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView topTextL3 = (TextView) view.findViewById(R.id.topTextL3);
topTextL3.setText(Html.fromHtml("<font color=#263355>EN FRANCE DEPUIS </font><font color=#EF7A05>1998</font><font color=#263355>.</font>"));
topTextL3.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
TextView bottomText = (TextView) view.findViewById(R.id.bottomText);
bottomText.setText(Html.fromHtml("<font color=#5D5D5C>Un crédit vous engage et doit être remboursé. Vérifiez vos capacités de remboursement avant de vous engager.</font>"));
bottomText.setTypeface(Typeface.createFromAsset(getActivity().getAssets(), "fonts/GothamBook.ttf"));
return view;
}
//Apres creation de la vue ont va creer les evenements
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
ImageView nosoffres = (ImageView) getView().findViewById(R.id.firstBlock);
nosoffres.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment fragment = new NosOffres();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.accueil, fragment);
fragmentTransaction.commit();
}
});
ImageView contact = (ImageView) getView().findViewById(R.id.secondBlock);
contact.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment fragment = new ContactezNous();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.accueil, fragment);
fragmentTransaction.commit();
}
});
ImageView actualites = (ImageView) getView().findViewById(R.id.thirdBlock);
actualites.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment fragment = new Actualites();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.accueil, fragment);
fragmentTransaction.commit();
}
});
ImageView mentions = (ImageView) getView().findViewById(R.id.fourthBlock);
mentions.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Fragment fragment = new MentionsLegales();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.accueil, fragment);
fragmentTransaction.commit();
}
});
ImageView formulaire = (ImageView) getView().findViewById(R.id.formulaire);
formulaire.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
startActivity(new Intent(Intent.ACTION_VIEW).setData(Uri.parse("http://www.solutis.fr/demande-rachat-credit.html/#utm_source=googleplay&utm_medium=application&utm_campaign=application-solutis-android")));
}
});
}
}
create static fragment object-
and initialize it in Activity/FragmentActivity class from where it is initializing
So base activity will detect backPressed of device and perform task. Fragment can not detect backPressed only the activity on which they are attached detects it.
And Change setOnClickListener to-