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); listeCuissons.setAdapter(adapterCuissons);
registerForContextMenu(listeCuissons); registerForContextMenu(listeCuissons);
// cuissonAffichees.add(new Cuisson("test", 0, 40, 180));
adapterCuissons.notifyDataSetChanged();
listeCuissons.requestLayout();
return view; return view;
} }
@@ -89,9 +85,10 @@ public class AfficherFragment extends Fragment {
* *
* @param cuisson La cuisson à ajouter * @param cuisson La cuisson à ajouter
*/ */
public static void addCuisson(Cuisson cuisson) { public void addCuisson(Cuisson cuisson) {
cuissonAffichees.add(cuisson.toString()); adapterCuissons.add(cuisson.toString());
System.out.println(cuissonAffichees); adapterCuissons.notifyDataSetChanged();
listeCuissons.requestLayout();
} }
/** /**
@@ -6,6 +6,7 @@
package com.example.outilcuisson; package com.example.outilcuisson;
import android.content.Context;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -14,6 +15,7 @@ import android.widget.Button;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TimePicker; import android.widget.TimePicker;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import com.example.outilcuisson.OutilCuisson; import com.example.outilcuisson.OutilCuisson;
@@ -34,15 +36,30 @@ public class AjouterFragment extends Fragment {
return new AjouterFragment(); 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 @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
@Override @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, public View onCreateView(LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) { 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 */ /* Liste des éléments intéractifs */
inputPlat = view.findViewById(R.id.input_plat); inputPlat = view.findViewById(R.id.input_plat);
@@ -51,7 +68,8 @@ public class AjouterFragment extends Fragment {
btnEffacer = view.findViewById(R.id.btn_effacer); btnEffacer = view.findViewById(R.id.btn_effacer);
btnValider = view.findViewById(R.id.btn_valider); 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.setIs24HourView(true);
inputDuree.setHour(0); inputDuree.setHour(0);
inputDuree.setMinute(40); inputDuree.setMinute(40);
@@ -67,7 +85,8 @@ public class AjouterFragment extends Fragment {
int mDuree = inputDuree.getMinute(); int mDuree = inputDuree.getMinute();
/* Convertis la température en entier */ /* 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 */ /* Cas ou les valeurs ne sont pas valides */
if (!OutilCuisson.platValide(txtPlat) if (!OutilCuisson.platValide(txtPlat)
@@ -79,8 +98,10 @@ public class AjouterFragment extends Fragment {
} }
/* Cas ou les valeurs sont valides : on ajoute une nouvelle cuisson dans la liste a afficher */ /* Cas ou les valeurs sont valides : on ajoute une nouvelle
AfficherFragment.addCuisson(new Cuisson(txtPlat, hDuree, mDuree, temperature)); 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.TabLayout;
import com.google.android.material.tabs.TabLayoutMediator; import com.google.android.material.tabs.TabLayoutMediator;
public class MainActivity extends AppCompatActivity { public class MainActivity extends AppCompatActivity implements AjouterFragment.EcouteurAjout {
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
@@ -56,4 +56,15 @@ public class MainActivity extends AppCompatActivity {
} }
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@Override
public void recevoirCuisson(Cuisson cuisson) {
AfficherFragment fragmentAModifier =
(AfficherFragment) getSupportFragmentManager().findFragmentByTag(
"f0");
if (fragmentAModifier != null) {
fragmentAModifier.addCuisson(cuisson);
}
}
} }