Liebe Community,
ich versuche seid längerem geeignete Tutorials oder ähnliches zu finden, leider ohne Erfolg.
Mein Problem: Ich habe eine App geschrieben, diese hat eine MainActivity und drei Fragmente. Diese werden mit dem ViewPager2 und eine TabLayout unter Verwendung des TabLayoutMediator's angezeigt. Nun will ich diesen Fragmenten Daten von der MainActivity mit geben und später auch die eingegebenen Daten in den Fragmenten auslesen um diese in einer Speichern-Funktion der MainActivity in der Datenbank zu speichern.
MainActivity ( Call_Tabs_Add_Acitivity.java )
public class Call_Tabs_Add_Activity extends AppCompatActivity {
private TabLayout call_tabLayout;
private TabLayoutMediator call_tabMediator;
private TabItem call_tabCallOverview, call_tabUnitOverview, call_tabVehicleOverview;
private ViewPager2 call_viewPager;
private PageAdapterAdd pageAdapterAdd;
public static final int TAB_UEBERSICHT = 0, TAB_EINHEITEN = 1, TAB_FAHRZEUGE = 2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_call_tabs);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_close);
setTitle("");
call_tabCallOverview = findViewById(R.id.call_tabCallOverview);
call_tabUnitOverview = findViewById(R.id.call_tabUnitOverview);
call_tabVehicleOverview = findViewById(R.id.call_tabVehicleOverview);
call_viewPager = findViewById(R.id.call_viewPager);
pageAdapterAdd = new PageAdapterAdd(this);
call_viewPager.setAdapter(pageAdapterAdd);
call_tabLayout = findViewById(R.id.call_tabLayout);
call_tabMediator = new TabLayoutMediator(call_tabLayout, call_viewPager, new TabLayoutMediator.TabConfigurationStrategy() {
@Override
public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
switch (position){
case TAB_UEBERSICHT: {
tab.setText(R.string.call_tabCallOverview);
tab.setIcon(R.drawable.ic_tabcalloverview);
break;
}
case TAB_EINHEITEN: {
break;
}
case TAB_FAHRZEUGE: {
break;
}
}
}
});
call_tabMediator.attach();
call_viewPager.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {
@Override
public void onPageSelected(int position) {
super.onPageSelected(position);
BadgeDrawable badgeDrawable = call_tabLayout.getTabAt(position).getOrCreateBadge();
switch (position){
case TAB_UEBERSICHT: {
break;
}
case TAB_EINHEITEN: {
badgeDrawable.setNumber(88);
break;
}
case TAB_FAHRZEUGE: {
badgeDrawable.setNumber(69);
break;
}
}
}
});
}
Alles anzeigen
Fragment1 ( Call_Fragment_Overview.java )
public class Call_Fragment_Overview extends Fragment implements View.OnClickListener{
private EditText addDateStart, addTimeStart, addDateEnd, addTimeEnd, addCallPlace, addCallChief, addCallSaftyEquipment;
private Switch switchAgt, switchDekon;
private View view;
public Call_Fragment_Overview() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.call_fragment_overview_add, container, false);
addDateStart = view.findViewById(R.id.add_date_start);
addDateStart.setOnClickListener(this);
addTimeStart = view.findViewById(R.id.add_time_start);
addTimeStart.setOnClickListener(this);
return view;
}
Alles anzeigen
PageAdapter ( PageAdapterAdd.java )
public class PageAdapterAdd extends FragmentStateAdapter {
public PageAdapterAdd(@NonNull FragmentActivity fragmentActivity) {
super(fragmentActivity);
}
@NonNull
@Override
public Fragment createFragment(int position) {
switch (position){
case 0:
Fragment call_Fragment_Overview = new Call_Fragment_Overview();
return call_Fragment_Overview;
case 1:
return ;
case 2:
return ;
default:
return null;
}
}
@Override
public int getItemCount() {
return 3;
}
}
Alles anzeigen
Hier also meine Klassen. Nun wie bereits erwähnt sollen die Felder im Fragment1 gesetzt werden, durch die in der Datenbank enthaltenen Werte. Problem 1 also, das Übergeben dieser Daten von der MainActivity and das Fragment. Sollten die Daten leer sein, so kann man die Felder im Fragment selber ausfüllen. Diese sollen dann ausgelesen werden, wenn auf speichern geklickt wird. Problem 2 also, wie lese ich diese Daten aus und bekomme sie an die MainActivity übergeben. Ich hatte dies bereits mit Bundles probiert, jedoch nicht umgesetzt bekommen. Wäre also Cool wenn mir dabei jemand helfen könnte. Gerne auch gemeinsam im Discord. Problem 3 wäre dann noch, dass Fragment2 (hier nicht aufgeführt) eine Art "Filter-Auswahl" für das Fragment3 ist. Sprich wird im Fragment2 zum Beispiel die Kategorie "Pizza" ausgewählt, so soll in Fragment3 nur die "Pizzen" auswählbar sein. Hier ist also das Problem 3, wie bekomme ich es hin, dass Fragment3 weiß, was in Fragment2 ausgewählt wurde.
Solltest du bis hier hin gekommen sein, schon mal vielen Dank fürs Durchlesen und deine Zeit!
P.s. sollte etwas an Infos fehlen, gerne drauf Aufmerksam machen!