2016-06-09 7 views
1

Ich habe eine Aktivität, die Schalter Fall haben, und ich habe auch zwei verschiedene Fragmente. Ich möchte, wenn ich auf eine Schaltfläche klicke, wird ein Fragment hinzugefügt/ersetzt für diese Aktivität und wenn ich auf eine andere Schaltfläche klicke, wird ein weiteres Fragment hinzugefügt/ersetzt für diese Aktivität. Was soll ich tun?Bedingungen auf Fragment in Android

public void onClick(View view) { 
     switch (view.getId()){ 
      case R.id.button1: 
       Intent intentFaculty = new Intent(MainActivity.this, FacultyLoginActivity.class); 
       startActivity(intentFaculty); 
       break; 
      case R.id.button2: 
      Intent intentAdmin = new Intent(MainActivity.this, AdminLoginActivity.class); 
      startActivity(intentAdmin); 
      break; 
    } 
} 

Anstelle der Startaktivität möchte ich Fragmente hinzufügen.

+0

Code anzeigen. –

+0

public void onClick (Ansicht anzeigen) { switch (view.getId()) { Fall R.id.button1: Intent intentFaculty = neuer Intent (MainActivity.this, FacultyLoginActivity.class); startActivity (intentFaculty); Pause; Fall R.id.button2: Absicht intentAdmin = neue Absicht (MainActivity.this, AdminLoginActivity.class); startActivity (intentAdmin); Pause; } } anstelle von Startaktivität möchte ich ein Fragment hinzufügen. –

+0

Benötigen Sie weitere Hilfe? Funktioniert meine Antwort für dich? – bendaf

Antwort

0

Erstellen Sie eine Schnittstelle in Ihrem Fragment wie:

public interface OnFragmentInteractionListener{ 
    void onClick(int buttonId); 
} 

Implementieren Sie Ihre Schnittstelle in Ihrer Aktivität:

@Override 
public void onClick(int buttonId){ 
    FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); 
    if(index == R.id.btn_change_fra){ 
     fragmentTransaction.addToBackStack("FragmentChange"); 
     newFragment = new NextFragment(); 
     fragmentTransaction.add(R.id.fragment, newFragment).commit(); 
    } 
} 

Aufschalten onAttach in Ihrem Fragment:

OnFragmentInteractionListener mListener; 
@Override public void onAttach(Context context){ 
    super.onAttach(context); 
    if(context instanceof OnFragmentInteractionListener){ 
     mListener = (OnFragmentInteractionListener) context; 
    }else{ 
     throw new RuntimeException(context.toString() 
              + " must implement OnFragmentInteractionListener"); 
    } 
} 

Und schließlich der Aufruf onClick() -Methode in onClick:

public void onClick(View view) { 
    mListener.onClick(view.getId()); 
} 

Das ist es. Ich empfehle Ihnen, mehr eindeutige Namen zu verwenden.