Question

mon problème semble simple, mais je ne peux pas arriver à trouver une réponse ici.

J'ai différentes activités dans une seule application. Activités commencent à l'autre. J'ai un « principal écran » qui affiche tous les différents niveaux disponibles, l'utilisateur clique sur un niveau et que l'activité est déjeunaient, lorsque se termine l'utilisateur ce niveau, il peut appuyer sur le dos touche pour accéder à le principal écran et commencer à un autre niveau. Lorsque back-bouton est pressé, je voudrais redessiner le nouveau « principal écran », car cette fois-ci le pouce pour le niveau complété sera différent pour montrer qu'il est terminé.

Alors, comment puis-je lancer un redessiner une activité sur arrière-bouton enfoncé? (Je suppose que je devrais mettre un peu de code dans la méthode Activity.onResume) (Je l'utilise SharedPreferences pour enregistrer l'état des niveaux finis)

L'activité principale à l'écran est essentiellement ceci:

    /** 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 utilise alors la valeur booléenne true / false pour choisir la source de l'image, que ce soit le pouce inachevé ou le pouce de niveau fini.

Était-ce utile?

La solution

D'abord mettre votre objet de GridView en tant que membre de la classe. remplacer ensuite la méthode onResume() dans laquelle vous pouvez re-fixer l'adaptateur de vue de la grille en fonction de ce que l'utilisateur a fait.

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

Autres conseils

Vous devez utiliser le startActivityForResult() méthode de activité onActivityResult() méthode appelée. Dans cette méthode, vous pouvez mettre à jour vos vues au besoin.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top