Öffnen Sie Das Fragment Aus Der Tätigkeit
Im arbeiten auf einer kleinen google-maps-app, die ermöglicht es Benutzern finden Sie Orte in der Nähe zu Ihnen, möchte ich hinzufügen, dass Funktionalität, die ermöglicht dem Benutzer, fügen Sie einen Ort, um die Liste der Favoriten, So weit ive erstellten Klassen, die dies können die Funktionalität.
Meine Haupttätigkeit ist meine Homepage, die öffnet sich anderen Aktivitäten, folgenden code:
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
public class MainActivity extends AppCompatActivity {
ImageButton btnNearBy;
ImageButton btnFavourites;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnNearBy = (ImageButton) findViewById(R.id.btnNearby);
btnNearBy.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent mapIntent = new Intent(getBaseContext(), MapsActivity.class);
startActivity(mapIntent);
}
});
btnFavourites = (ImageButton) findViewById(R.id.btnFavourites);
btnFavourites.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
FragmentManager fragmentManager = MainActivity.this.getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
FavouriteListFragment fragment = new FavouriteListFragment();
fragmentTransaction.add(R.id.fragment_container, fragment); //ERROR ON THIS LINE
fragmentTransaction.commit();
}
});
}
}
Ive erstellt eine Schaltfläche, die das öffnen sollte das fragment, das hält die Liste der Favoriten ,Mein fragment erklärt wird, wie diese:
public class FavouriteListFragment extends Fragment { ... }
Ich bin etwas unsicher, wie man öffnen Sie das fragment aus der MainActivity beim klicken auf eine Schaltfläche.
Irgendwelche Ideen?
Danke!
Wäre das in meiner MainActivity xml-Datei?
InformationsquelleAutor T91 | 2016-04-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei Möglichkeiten der Anzeige Fragmente:
1 - Zuerst müssen Sie definieren, ein fragment-container in Ihrem code wie folgt:
und dann müssen Sie erstellen Sie eine Funktion namens
openFragment
in Ihrer Aktivität und verwenden Sie den folgenden code inopenFragment
:2 - definieren Sie das fragment in Ihrer Aktivität xml-Datei wie:
Die erste ist die sogenannte dynamische fragment der Schöpfung und die zweite ist statisch. Sie haben mehr Freiheit, mit der erste, aber wenn Ihr fragment ändert sich nicht während der Aktivität ist es einfacher zu verwenden ist die zweite
fragment wird nie ersetzen Sie Ihre Aktivität, sondern findet in einer Ansicht innerhalb einer Aktivität. Wenn Sie das gewünschte layout aus, das fragment zu besetzen, ist die übergeordnete Sicht, dann ja, es nimmt deine ganze Sicht. aber wenn das layout hat zum Beispiel 4 Ansichten können Sie verwenden Sie einfach den Blick für das fragment und der rest bleibt für Ihre Tätigkeit Haupt-layout
wenn man verstehen will, das Verhalten besser, ich schlage vor, führen Sie einige tests mit verschiedenen layouts zu sehen, wie es funktioniert
Ah okay, also in diesem Fall das fragment wird in der Haupttätigkeit?
in diesen Fällen, die ich zeigte, ja
InformationsquelleAutor Pooya
Da Sie über
android.support.v4.app.Fragment
und es hat eine Menge Verwirrung in den Import-korrekte version. Versuchen Sie es so:Wo
fragment_container
istFrameLayout
innenactivity_main
.Referenz
in
activity_main
es sollte einFrameLayout
.Es sagt
cannot resolve method add
für diefragmentTransaction.add(R.id.fragment_container, fragment);
lineDie
FragmentManager
verwenden Sie? versuchen Sie zu wechseln.schauen Sie auf meine aktualisierte Antwort. Ich habe ausdrücklich Hinzugefügt, die fragmentManager zu verwenden.
InformationsquelleAutor Rohit Arya