Frage

mein Problem scheint einfach, aber ich kann es nicht schaffen hier eine Antwort zu finden.

Ich habe verschiedene Aktivitäten in einer Anwendung. Aktivitäten beginnen sich gegenseitig. Ich habe eine „main-screen“ , dass zeigt alle verschiedenen verfügbaren Ebenen, Benutzer klickt auf ein Niveau und diese Tätigkeit wird zu Mittag gegessen, wenn der Benutzer beendet das Niveau, kann er die Back-Taste drücken, um zu gehen der Haupt-Bildschirm und starten Sie eine weitere Ebene. Bei der Wiedergabe-Taste gedrückt wird ich mag wieder zieht den „Hauptbildschirm“ wieder, wird der Daumen seit dieser Zeit für die fertiggestellte Ebene unterschiedlich sein zu zeigen, dass es abgeschlossen ist.

Wie führe ich eine erneute ziehen auf einer Aktivität auf Back-Taste gedrückt? (Ich glaube, ich sollte etwas Code in der Activity.onResume Methode setzen) (Ich benutze SharedPreferences den Zustand der fertigen Ebenen speichern)

Die Hauptbildschirmaktivität ist im Grunde dieser:

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maps);

SharedPreferences settings = getSharedPreferences((getResources().getString(R.string.PREFS_HI)),0); /**/ GridView gridview = (GridView) findViewById(R.id.gridview); gridview.setAdapter(new ImageAdapter(this,(settings.getBoolean("level_1_finished", false)))); /**/ gridview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View v, int position, long id) { //Open the map which was clicked on, if there is one if(position+1 > 1){ Toast.makeText(maps.this, "Level " + (position+1) + " is not yet available!", Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(maps.this, "Opening Level " + (position+1), Toast.LENGTH_SHORT).show(); Intent myIntent = new Intent(v.getContext(), Tutorial2D.class); startActivity(myIntent); } } }); }

ImageAdapter verwendet dann die boolean true / false, um die Quelle des Bildes, entweder die unvollendeten Daumen oder die fertige Ebene Daumen zu wählen.

War es hilfreich?

Lösung

Zuerst setzen Sie Ihre GridView objet als Klassenmitglied. Dann überschreibt die onResume() Methode in dem Sie die Rasteransicht Adapter neu einstellen auf dem, was der Benutzer hat.

private GridView gridview;
@Override
protected void onResume() {
    super.onResume();
    gridview.setAdapter(/* your new ImageAdapter here */);
}

Andere Tipps

Sie sollten die startActivityForResult() Methode der Aktivität . Grundsätzlich Sie beginnen Ihre nächste Aktivität, fragt nach dem Status der Anfrage, wenn es fertig ist. Kurz bevor es fertig ist, sollte es nennen setResult (in dem Sie festlegen, ob der Benutzer die Ebene abgeschlossen ist oder nicht). Die Aktivität, die es (Hauptbildschirm) genannt wird seine onActivityResult() Methode aufgerufen. Bei dieser Methode können Sie Ihre Ansichten aktualisieren je nach Bedarf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top