communication entre les fragments

This commit is contained in:
NonoL3Robot
2022-03-14 12:03:18 +01:00
parent 8198f4bb4d
commit 578b247ebe
3 changed files with 46 additions and 17 deletions
@@ -77,10 +77,6 @@ public class AfficherFragment extends Fragment {
listeCuissons.setAdapter(adapterCuissons);
registerForContextMenu(listeCuissons);
// cuissonAffichees.add(new Cuisson("test", 0, 40, 180));
adapterCuissons.notifyDataSetChanged();
listeCuissons.requestLayout();
return view;
}
@@ -89,9 +85,10 @@ public class AfficherFragment extends Fragment {
*
* @param cuisson La cuisson à ajouter
*/
public static void addCuisson(Cuisson cuisson) {
cuissonAffichees.add(cuisson.toString());
System.out.println(cuissonAffichees);
public void addCuisson(Cuisson cuisson) {
adapterCuissons.add(cuisson.toString());
adapterCuissons.notifyDataSetChanged();
listeCuissons.requestLayout();
}
/**
@@ -6,6 +6,7 @@
package com.example.outilcuisson;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
@@ -14,6 +15,7 @@ import android.widget.Button;
import android.widget.EditText;
import android.widget.TimePicker;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import com.example.outilcuisson.OutilCuisson;
@@ -34,15 +36,30 @@ public class AjouterFragment extends Fragment {
return new AjouterFragment();
}
public interface EcouteurAjout {
void recevoirCuisson(Cuisson cuisson);
}
private EcouteurAjout activiteQuiMEcoute;
@Override
public void onAttach(@NonNull Context context) {
super.onAttach(context);
activiteQuiMEcoute = (EcouteurAjout) context;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.ajouter_fragment, container, false);
View view = inflater.inflate(R.layout.ajouter_fragment, container,
false);
/* Liste des éléments intéractifs */
inputPlat = view.findViewById(R.id.input_plat);
@@ -51,7 +68,8 @@ public class AjouterFragment extends Fragment {
btnEffacer = view.findViewById(R.id.btn_effacer);
btnValider = view.findViewById(R.id.btn_valider);
/* Initialise le TimePicker en format 24h avec par défaut la valeur 0h40 */
/* Initialise le TimePicker en format 24h avec par défaut la valeur
0h40 */
inputDuree.setIs24HourView(true);
inputDuree.setHour(0);
inputDuree.setMinute(40);
@@ -67,20 +85,23 @@ public class AjouterFragment extends Fragment {
int mDuree = inputDuree.getMinute();
/* Convertis la température en entier */
int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(txtTemperature);
int temperature = txtTemperature.isEmpty() ? -1 : Integer.parseInt(
txtTemperature);
/* Cas ou les valeurs ne sont pas valides */
if (!OutilCuisson.platValide(txtPlat)
|| !OutilCuisson.heureCuissonValide(hDuree)
|| !OutilCuisson.minuteCuissonValide(mDuree)
|| !OutilCuisson.temperatureValide(temperature)) {
|| !OutilCuisson.heureCuissonValide(hDuree)
|| !OutilCuisson.minuteCuissonValide(mDuree)
|| !OutilCuisson.temperatureValide(temperature)) {
System.out.println("Erreur");
}
/* Cas ou les valeurs sont valides : on ajoute une nouvelle cuisson dans la liste a afficher */
AfficherFragment.addCuisson(new Cuisson(txtPlat, hDuree, mDuree, temperature));
/* Cas ou les valeurs sont valides : on ajoute une nouvelle
cuisson dans la liste a afficher */
activiteQuiMEcoute.recevoirCuisson(
new Cuisson(txtPlat, hDuree, mDuree, temperature));
});
/*
@@ -12,7 +12,7 @@ import androidx.viewpager2.widget.ViewPager2;
import com.google.android.material.tabs.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator;
public class MainActivity extends AppCompatActivity {
public class MainActivity extends AppCompatActivity implements AjouterFragment.EcouteurAjout {
@Override
protected void onCreate(Bundle savedInstanceState) {
@@ -56,4 +56,15 @@ public class MainActivity extends AppCompatActivity {
}
return super.onOptionsItemSelected(item);
}
@Override
public void recevoirCuisson(Cuisson cuisson) {
AfficherFragment fragmentAModifier =
(AfficherFragment) getSupportFragmentManager().findFragmentByTag(
"f0");
if (fragmentAModifier != null) {
fragmentAModifier.addCuisson(cuisson);
}
}
}