mein Problem scheint einfach, aber ich werde es nicht schaffen, eine Antwort hier zu finden.ziehen Sie eine Aktivität in Android
Ich habe verschiedene Aktivitäten in einer Anwendung. Aktivitäten beginnen sich gegenseitig. Ich habe eine "Hauptbildschirm", die alle verschiedenen verfügbaren Ebenen zeigt, Benutzer klickt auf eine Ebene und diese Aktivität ist lunched, wenn Benutzer diese Ebene beendet, kann er die Zurück-Taste drücken, um zum Hauptbildschirm zu gelangen und starte ein anderes Level. Wenn die Zurück-Taste gedrückt wird, möchte ich den "Hauptbildschirm" erneut zeichnen, da diesmal der Daumen für die abgeschlossene Ebene anders ist, um zu zeigen, dass er abgeschlossen ist.
Wie also führe ich eine Re-Draw auf eine Aktivität bei gedrückter Zurück-Taste? (ich nehme an sollte ich einige Code in der Activity.onResume Methode setzen) (I SharedPreferences verwenden Sie den Zustand der fertigen Ebenen zu sparen) ist
Der Hauptbildschirmaktivitäten im Grunde diese:
/** 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 den booleschen Wert true/false, um die Quelle des Bildes zu wählen, entweder den unvollendeten Daumen oder den fertigen Ebenen-Daumen.
Sie haben Ihre Frage selbst beantwortet, überschreiben Sie onResume und aktualisieren Sie Ihre Schaltflächen in der Methode. –
Der "Hauptbildschirm" ist eine GridView, die in der onCreate-Methode erstellt wird. Ich möchte so etwas wie dies tun: @Override public void onResume() { \t/* nennen onCreate hier */ } – theAlse
rufen Sie nicht onCreate in Ihrem onResume Methode, dies ist nicht der richtige Weg ist zu tun es. Sie müssen nur ein Element aktualisieren, nicht die gesamte Ansicht neu zeichnen. – gulbrandr