Hallo Android Developers
ich habe ein Problem mit meiner App.
In einem Fragment sind mehrere Button dynamisch erzeugt worden, durch das klicken auf einen dieser Button wird
ein Fragment geöffnet werden in dem sich ein Viewpager befindet.
In dem Viewpager sind Erneut 2. Fragments mittels Adapter drin.
Im ersten Fragment kann man was mit einem Spinner einstellen, durch einen Button, gelangt man wieder in das Fragment mit den vielen Buttons, nun soll dr Button auf den geklickt worden ist den Spinner text anzeigen.
Nun zum eigentlichen Problem, klickt man nun erneut auf einen Button im Fragment mit den vielen Button, wird nur eine leere weiße Seite angezeigt.
Klasse Playground: Dort befinden sich die vielen Buttons.
Klasse Tisch: playground erzeugt Buttons von Tisch
(Tisch extends Button)
Klasse: Table Setting: Wird aufgerufen wenn man auf Button klickt
Klasse: TableFragmentOne : ISt Fragment im ViewPager
public class TableFragmentOne extends Fragment {
public static final String EXTRA_MESSAGE = "EXTRA_MESSAGE";
private int practiceTime;
private String practiceText;
private OneInterfaceListener mListener;
private int butId;
public TableFragmentOne() {
}
@Override
public void onAttachFragment(Fragment childFragment) {
super.onAttachFragment(childFragment);
}
public static final TableFragmentOne newInstance(String message, int buttonId) {
TableFragmentOne f = new TableFragmentOne();
Bundle bdl = new Bundle(1);
bdl.putString(EXTRA_MESSAGE, message);
f.setArguments(bdl);
f.butId = buttonId;
return f;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tablefragmentone, container, false);
createPracticeSpinner(v);
createTimeSpinner2(v);
Toast.makeText(v.getContext(), "One", Toast.LENGTH_SHORT).show();
createPracticeButton(v);
return v;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof TableFragmentOne.OneInterfaceListener) {
mListener = (TableFragmentOne.OneInterfaceListener) context;
} else {
throw new RuntimeException(context.toString() + " must implement OnFragmentInteractionListener");
}
}
/**
* Spinner Die Text Angaben der Übungen
***/
private void createPracticeSpinner(View v) {
final Spinner textSpinner = (Spinner) v.findViewById(R.id.practiceSpinner);
ArrayAdapter<CharSequence> textAdapter;
boolean b = mListener.getBeginnerBool();
boolean a = mListener.getAdvancedBool();
if (b == true && a == false) {
textAdapter = ArrayAdapter.createFromResource(v.getContext(), R.array.practicebeginner, android.R.layout.simple_spinner_item);
}
if (a == true && b == false) {
textAdapter = ArrayAdapter.createFromResource(v.getContext(), R.array.practiceadvanced, android.R.layout.simple_spinner_item);
}else{
textAdapter = ArrayAdapter.createFromResource(v.getContext(), R.array.practiceboth, android.R.layout.simple_spinner_item);
}
textSpinner.setAdapter(textAdapter);
textSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
setPracticeText((String) parent.getItemAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
/**
* Spinner für die Zeit der Übungen
*/
private void createTimeSpinner2(View v) {
final Spinner timeSpinner = (Spinner) v.findViewById(R.id.timeSpinner);
ArrayAdapter<CharSequence> timeAdapter = ArrayAdapter.createFromResource(v.getContext(), R.array.timepractice, android.R.layout.simple_spinner_item);
timeSpinner.setAdapter(timeAdapter);
timeSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
setPraticeTime(Integer.valueOf((String) parent.getItemAtPosition(position)));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
}
/*Übungs starter Button*/
private void createPracticeButton(View v) {
Toast.makeText(v.getContext(), "Button One", Toast.LENGTH_SHORT).show();
final Button trainButton = (Button) v.findViewById(R.id.practiceButton);
Toast.makeText(v.getContext(), "Danach Button One", Toast.LENGTH_SHORT).show();
trainButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(v.getContext(), "Lets go!!", Toast.LENGTH_SHORT).show();
goBackToPlayground(v);
}
});
}
/***Button Listener der die Übung starten soll***/
private void goBackToPlayground(View v) {
Toast.makeText(v.getContext(), "Back Test", Toast.LENGTH_SHORT).show();
/*Daten von ÜbungsSpinner und vom TimeSpinner müssen gespeichert und übergeben werden*/
/*ÜbungsSpinner TableFragmentTwo*/
/*Timespinner an Playground*/
mListener.practiceSetting(getPracticeTime(), getPracticeText(), butId);
/*Funktion die über das Interface zum Playground wechselt**/
mListener.startEndlichMal();
}
/*Spinner Listener*/
private void setPracticeText(String practiceText) {
this.practiceText = practiceText;
}
private void setPraticeTime(Integer integer) {
this.practiceTime = integer;
}
/**
* Getter und Setter
*/
public String getPracticeText() {
return practiceText;
}
public int getPracticeTime() {
return practiceTime;
}
/*Interface**/
public interface OneInterfaceListener {
// TODO: Update argument type and name
void startEndlichMal();
void practiceSetting(int practiceTime, String practiceText, int buttonId);
// Intent getInterfaceI();
Boolean getBeginnerBool();
Boolean getAdvancedBool();
}
}
Alles anzeigen