- Forum-Beiträge: 615
08.02.2021, 20:46:32 via Website
08.02.2021 20:46:32 via Website
Hallo zusammen
Ich habe eine Activity. Darauf habe ich Fragmente welche ich als Tabulatoren zusammen gefasst habe.
Wie kann ich aus meiner Activity ermitteln, was in welchem Fragment eingestellt ist?
Mit getArguments kann ich dem Fragment Parameter übergeben. Wie funktioniert das auf dem umgekehrten Weg?
Zuletzt noch der Code:
ein Fragment
package ch.robbisoft.kck_app;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioGroup;
/**
* A simple {@link Fragment} subclass.
* Use the {@link FragBass#newInstance} factory method to
* create an instance of this fragment.
*/
public class FragBass extends Fragment {
private RadioGroup obj_grpbass;
// TODO: Rename parameter arguments, choose names that match
// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";
// TODO: Rename and change types of parameters
private String mParam1;
private String mParam2;
public FragBass() {
// Required empty public constructor
}
/**
* Use this factory method to create a new instance of
* this fragment using the provided parameters.
*
* @param param1 Parameter 1.
* @param param2 Parameter 2.
* @return A new instance of fragment FragBass.
*/
// TODO: Rename and change types and number of parameters
public static FragBass newInstance(String param1, String param2) {
FragBass fragment = new FragBass();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
mParam1 = getArguments().getString(ARG_PARAM1);
mParam2 = getArguments().getString(ARG_PARAM2);
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootview = inflater.inflate(R.layout.fragment_bass, container, false);
obj_grpbass = (RadioGroup) rootview.findViewById(R.id.grp_bass);
obj_grpbass.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int check) {
switch( check ){
case R.id.rbtn_einsbass : break;
case R.id.rbtn_zweibass : break;
case R.id.rbtn_dreibass : break;
case R.id.rbtn_vierbass : break;
case R.id.rbtn_fuenfbass : break;
}
}
});
return rootview;
}
}
die aufrufende Activity
package ch.robbisoft.kck_app;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.TabHost;
import android.widget.TextView;
import com.google.android.material.tabs.TabLayout;
public class Popularis extends AppCompatActivity {
private Context ctx = null;
private int tabpos;
private Fragment fragment = null;
private FragmentManager fragmanager = null;
private FragmentTransaction fragtransaction = null;
private MediaPlayer mp = null;
public int n_lied = 0;
private static int n_lang;
private ImageButton obj_start;
private ImageButton obj_pause;
private ImageButton obj_stop;
private ProgressBar obj_dauer;
private ImageButton obj_zuruck;
private ImageButton obj_vor;
private TextView txt_links;
private TextView txt_rechts;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_popularis);
ctx = getApplicationContext();
TabLayout obj_lied = (TabLayout) findViewById(R.id.tab_lied);
TabLayout.Tab sopran1 = obj_lied.newTab(); // Create a new Tab names
sopran1.setText(getString(R.string.lbl_sopran1)); // set the Text for the first Tab
// sopran1.setIcon(R.drawable.ic_launcher); // set an icon for the first tab
obj_lied.addTab(sopran1, true);
TabLayout.Tab sopran2 = obj_lied.newTab();
sopran2.setText(getString(R.string.lbl_sopran2));
obj_lied.addTab(sopran2);
TabLayout.Tab alt = obj_lied.newTab();
alt.setText(getString(R.string.lbl_alt));
obj_lied.addTab(alt);
TabLayout.Tab tenor = obj_lied.newTab();
tenor.setText(getString(R.string.lbl_tenor));
obj_lied.addTab(tenor);
TabLayout.Tab bass = obj_lied.newTab();
bass.setText(getString(R.string.lbl_bass));
obj_lied.addTab(bass);
tabpos = obj_lied.getSelectedTabPosition();
obj_lied.addOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
tabpos = tab.getPosition();
switch ( tabpos ){
case 0 : fragment = new FragSopranEins();
break;
case 1 : fragment = new FragSopranZwei();
break;
case 2 : fragment = new FragAlt();
break;
case 3 : fragment = new FragTenor();
break;
case 4 : fragment = new FragBass();
}
fragmanager = getSupportFragmentManager();
fragtransaction = fragmanager.beginTransaction();
fragtransaction.replace(R.id.simpleFrameLayout, fragment);
fragtransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragtransaction.commit();
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
});
fragment = new FragSopranEins();
fragmanager = getSupportFragmentManager();
fragtransaction = fragmanager.beginTransaction();
fragtransaction.replace(R.id.simpleFrameLayout, fragment);
fragtransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
fragtransaction.commit();
obj_start = (ImageButton) findViewById(R.id.btn_start);
obj_start.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mp = (MediaPlayer) MediaPlayer.create(ctx, n_lied);
mp.start();
}
});
obj_pause = (ImageButton) findViewById(R.id.btn_pause);
obj_stop = (ImageButton) findViewById(R.id.btn_stop);
obj_zuruck = (ImageButton) findViewById(R.id.btn_zuruck);
obj_vor = (ImageButton) findViewById(R.id.btn_vor);
obj_dauer = (ProgressBar) findViewById(R.id.prb_lied);
txt_links = (TextView) findViewById(R.id.tv_start);
txt_rechts = (TextView) findViewById(R.id.tv_end);
txt_links.setText("0:00");
txt_rechts.setText("0:00");
}
}
Gruss Renato
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.