Hallo,
ich mochte gern zwischen 2 Layouts hin und her "switchen". Das will ich mithilfe von Fragmenten realisieren.
Klappt auch alles ganz gut. Mein Problem ist nur, dass beim Wechsel zwischen den Layouts das vorherige "überladen" wird, d.h. wenn ich z.B 5 mal zwischen den Layouts hin und her wechsel wird immer ein neues erstellt. Beim schließen der App muss ich dann halt 5x den zurück Button betätigen um auf meinen Home-Screen zu gelangen.
Hoffe das Problem ist verständlich geschildert...;-)
Zum Code:
Ich habe zwei Klassen welche jeweils ein Layout beinhalten.
In meiner Main möchte ich zwischen den Layouts wechseln.
Ich poste mal meine Main:
package com.example.fragment;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class Main extends Activity
{
public Fragment fragment;
Button btn_Network_Layout, btn_Connection_Layout;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_Network_Layout = (Button)findViewById(R.id.display_network_layout);
btn_Connection_Layout = (Button)findViewById(R.id.display_connection_layout);
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Network_Layout Fragment = new Network_Layout();
fragmentTransaction.add(R.id.fragment, Fragment);
fragmentTransaction.commit();
btn_Network_Layout.setOnClickListener(btnFragmentOnClickListener);
btn_Connection_Layout.setOnClickListener(btnFragmentOnClickListener);
}
Button.OnClickListener btnFragmentOnClickListener = new Button.OnClickListener()
{
@Override
public void onClick(View v)
{
Fragment newFragment;
if(v == btn_Network_Layout)
{
newFragment = new Network_Layout();
}
else
{
newFragment = new Connection_Layout();
}
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment, newFragment);
transaction.addToBackStack(null);
transaction.commit();
}
};
}
Alles anzeigen
Im Anhang mal die Oberfläche.
Mithilfe der Buttons lade ich das entsprechende Layout.
Ich möchte nun aber das vorherige löschen.
Also wenn ich den zurück Button auf meinem Gerät einmalig betätige, möchte ich sofort wieder auf dem Home-Screen landen.
Ich hoffe mein Problem ist verständlich beschrieben.
Gruß
Brausebernd