salvare una activity e richiamarla

Matteo Pirola

Nuovo Utente
28 Mag 2014
4
0
0
Ciao a tutti.
Sto sviluppando una piccola app fatta da una ventina di activity, in ciascuna di esse ho messo una textview e una scrollview (perchè il testo è lungo e bisogna per forza scrollare per leggerlo tutto).
Il testo finisce con un pulsante che ti manda alla activity successiva.

Vorrei implementare un bookmark che salvi l'activity a cui l'utente è arrivato a leggere, per poi richiamarla quando l'utente lancia l'app nuovamente...

Spero di essere stato chiaro, potreste indirizzarmi su quali argomenti dovrei studiare per poter fare una lavoro di questo tipo?
devo usare onSaveIstanceState oppure SharedPreferences? qualcuno potrebbe farmi un esempio veloce per capire meglio?

Grazie.
 
ciao Michele, ho provato così ma non funziona:
allora ho tre activity:Activity0, Activity1, Activity2
L'utente quando lancia l'app. visualizza la prima activity che in questo caso è Activity0, legge il testo e poi clicca su un pulsante per passare ad Activity1, stessa cosa e arriva ad Activity2... (si potrebbe andare avanti fino ad activity100) supponiamo che dopo aver letto il testo decida di chiudere l'app, quando rilancia l'app deve riprendere da activity2 e andare avanti nella lettura e nelle successive activity.
1) ecco il codice che ho inserito in activity2:

Codice:
package com.example.underworld;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;

public class Activity2 extends Activity {

	private static final String ACTIVITY_TAG = null;



	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity2);
	}

	@Override
	protected void onSaveInstanceState(Bundle outState) {
		super.onSaveInstanceState(outState);
		Log.i(ACTIVITY_TAG, "ON_SAVE_INSTANCE_STATE"+getActivityName());
		int counter = 0;
		outState.putInt("counter", counter);
		
	}
		
	private String getActivityName() {
		// TODO Auto-generated method stub
		return null;
	}

	
	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity2, menu);
		return true;
	}


2) invece nell'Activity0 (per ripristinare l'activity salvata) ho inserito questo codice:

Codice:
package com.example.underworld;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Typeface;
import android.os.Bundle;

import android.view.Menu;
import android.view.View;
import android.widget.TextView;


public class IntroduzioneActivity extends Activity {
	
	
	private int counter;

	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity0);
        Typeface myTypeface = Typeface.createFromAsset(this.getAssets(),"GODOFWAR.TTF");
        TextView textView1 = (TextView) findViewById(R.id.textView1);
        textView1.setTypeface(myTypeface);
     
    }
	
	protected void onRestoreInstanceState (Bundle savedInstanceState){
		super.onSaveInstanceState(savedInstanceState);
		counter = savedInstanceState.getInt("counter");
		showCounterState();
		
	}
	
	

    private void showCounterState() {
		// TODO Auto-generated method stub
		
	}

	@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
    	getMenuInflater().inflate(R.menu.activity0, menu);        
        return true;
    }


Purtroppo non salva l'activity2, non mi genera nessun errore, qualcuno potrebbe darmi un consiglio?
 
Ultima modifica di un moderatore:
Penso che il punto sia dato dal fatto che non puoi inserire uno stato in un Activity A e aprire l'activity B aspettando di vedere lo stato dell'Activity A al suo interno.

Sei riuscito a replicare l'esempio nel tutorial?
 
in ciascuna di esse ho messo una textview e una scrollview (perchè il testo è lungo e bisogna per forza scrollare per leggerlo tutto).
Il testo finisce con un pulsante che ti manda alla activity successiva.

Vorrei implementare un bookmark che salvi l'activity a cui l'utente è arrivato a leggere, per poi richiamarla quando l'utente lancia l'app nuovamente...

Spero di essere stato chiaro, potreste indirizzarmi su quali argomenti dovrei studiare per poter fare una lavoro di questo tipo?
 
in ciascuna di esse ho messo una textview e una scrollview (perchè il testo è lungo e bisogna per forza scrollare per leggerlo tutto).
Il testo finisce con un pulsante che ti manda alla activity successiva.

Vorrei implementare un bookmark che salvi l'activity a cui l'utente è arrivato a leggere, per poi richiamarla quando l'utente lancia l'app nuovamente...

Spero di essere stato chiaro, potreste indirizzarmi su quali argomenti dovrei studiare per poter fare una lavoro di questo tipo?

Io analizzerei la possibilità di salvare lo stato corrente, alla chiusura dell'app all'interno di un file. Li potresti inserire i dati che indicheranno all'app da dove ripartire a far leggere l'utente.

Qui alcuni riferimenti: http://developer.android.com/training/basics/data-storage/files.html

Cosa ne dici?
 
Ultima modifica:

Discussioni simili