Autore Topic: Eseguire un activity solo al primo avvio dell'app  (Letto 983 volte)

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Eseguire un activity solo al primo avvio dell'app
« il: 17 Dicembre 2015, 20:31:00 CET »
0
Ciao a tutti,
in una mia app ho creato un activity che permette di creare un profilo utente (quindi i dati sono i classici nome, cognome..), al click sul Button "salva" viene creato un oggetto di tipo Person, dove Person è una classe che implementa l'interfaccia Parcelable.
Quello che vorrei è che nei successivi avvii dell'app, venisse eseguita un'altra activity (che diventerebbe quindi l'activity principale di avvio).
Mi potreste aiutare a capire come fare? Ho letto varie soluzioni anche su stackoverflow, ma sembra che non mi funzioni nulla :( .

Grazie mille a tutti

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #1 il: 17 Dicembre 2015, 20:49:27 CET »
0
Potresti usare le shared preference:
crei un activity che vede se ci sono shared salvate contenenti nome e cognome..se non li trova allora avvia l'activity di creazione del profilo, altrimenti va nella seconda activity

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #2 il: 17 Dicembre 2015, 20:51:44 CET »
0
Ciao Klizard, grazie per avermi risposto.
Potresti farmi un esempietto veloce? Perché avevo già provato anche la via delle SharedPreference, ma non ci ho ricavato nulla.

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #3 il: 17 Dicembre 2015, 20:52:41 CET »
0
Ciao Klizard, grazie per avermi risposto.
Potresti farmi un esempietto veloce? Perché avevo già provato anche la via delle SharedPreference, ma non ci ho ricavato nulla.
Sai creare delle shared e leggerle?

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #4 il: 17 Dicembre 2015, 20:56:37 CET »
0
Sai creare delle shared e leggerle?
Avevo trovato, e l'ho applicato al mio codice, questo codice
Codice (Java): [Seleziona]
mSharedPreferences = getSharedPreferences("yourPrefsFileName", Context.MODE_PRIVATE);
        mEditor = mSharedPreferences.edit();

        if (mSharedPreferences.getBoolean("isfirstTime", true)) {
            mEditor.putBoolean("isFirstTime",false);
            mEditor.apply();
        }else{
//            btnSave.setOnClickListener(click);
//            startActivity(new Intent(this, MainActivity.class));
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.putExtra("profile", person);
            startActivity(intent);
            overridePendingTransition(0, 0);
            finish();
        }
Il problema è che tutte le volte che mando in esecuzione l'app mi apre l'Activity CreateUserActivity, anziché la MainActivity

Per completezza, questo è il listner del bottone
Codice (Java): [Seleziona]
    View.OnClickListener click = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             //TODO implementare il salvataggio
            if (checkRequiredValue()) {
                Toast.makeText(getApplicationContext(), "profile saved", Toast.LENGTH_SHORT).show();
                person = new Person(edtPersonName.getText().toString(), edtPersonSurname.getText().toString(),
                        edtUniversity.getText().toString(), edtCdl.getText().toString(),
                        spKindDegree.getSelectedItem().toString(), Integer.parseInt(edtTotalCfu.getText().toString()));

                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.putExtra("profile", person);
                startActivity(intent);
            }
        }
    };

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #5 il: 17 Dicembre 2015, 21:03:50 CET »
0
checkRequiredValue() cosa fa esattamente? scrivi il codice così provo a dirti cosa sbagli (non ho capito come hai applicato le shared..)

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #6 il: 17 Dicembre 2015, 21:05:49 CET »
0
Codice (Java): [Seleziona]
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;

import User.Person;

public class CreateUserActivity extends AppCompatActivity {
    private EditText edtPersonName;
    private EditText edtPersonSurname;
    private EditText edtUniversity;
    private EditText edtCdl;
    private EditText edtTotalCfu;
    private Spinner spKindDegree;
    private Button btnSave;
    private Person person;

    private SharedPreferences mSharedPreferences;
    private SharedPreferences.Editor mEditor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_user);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        resourceAssignment();
        populateSpinner();
//        fillCFUEditText(spKindDegree.getSelectedItemPosition());

        btnSave.setOnClickListener(click);
        mSharedPreferences = getSharedPreferences("yourPrefsFileName", Context.MODE_PRIVATE);
        mEditor = mSharedPreferences.edit();

        if (mSharedPreferences.getBoolean("isfirstTime", true)) {
            mEditor.putBoolean("isFirstTime",false);
            mEditor.apply();
        }else{
//            btnSave.setOnClickListener(click);
//            startActivity(new Intent(this, MainActivity.class));
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            intent.putExtra("profile", person);
            startActivity(intent);
            overridePendingTransition(0, 0);
            finish();
        }

    }

    View.OnClickListener click = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             //TODO implementare il salvataggio
            if (checkRequiredValue()) {
                Toast.makeText(getApplicationContext(), "profile saved", Toast.LENGTH_SHORT).show();
                person = new Person(edtPersonName.getText().toString(), edtPersonSurname.getText().toString(),
                        edtUniversity.getText().toString(), edtCdl.getText().toString(),
                        spKindDegree.getSelectedItem().toString(), Integer.parseInt(edtTotalCfu.getText().toString()));

                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.putExtra("profile", person);
                startActivity(intent);
            }
        }
    };

    private boolean checkRequiredValue() {
        if (edtPersonName.getText().toString().isEmpty()){
            edtPersonName.setError("Il nome è richiesto");
            return false;
        }else if (edtTotalCfu.getText().toString().isEmpty() || edtTotalCfu.getText().toString().equals("0")){
            edtTotalCfu.setError("I cfu totali sono richiesti");
            return false;
        }
        return true;
    }

    private void resourceAssignment() {
        edtPersonName = (EditText) findViewById(R.id.edt_person_name);
        edtPersonSurname = (EditText) findViewById(R.id.edt_person_surname);
        edtUniversity = (EditText) findViewById(R.id.edt_university);
        edtCdl = (EditText) findViewById(R.id.edt_cdl);
        edtTotalCfu = (EditText) findViewById(R.id.edt_total_cfu);
        spKindDegree = (Spinner) findViewById(R.id.sp_kind_degree);
        btnSave = (Button) findViewById(R.id.btn_save_profile);
    }

    private void populateSpinner() {
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.kind_degree, R.layout.spinner_degree_item);

        // Specify the layout to use when the list of choices appears
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        // Apply the adapter to the spinner
        spKindDegree.setAdapter(adapter);
    }

}

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #7 il: 17 Dicembre 2015, 21:13:36 CET »
0
Ma scusa, dopo che salvi la nuova Person non aggiorni le shared? Dovresti aggiungere
mEditor.putString("isfirsttime", false); (oltre al fatto che non capisco dove salvi i dati della Person)

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #8 il: 17 Dicembre 2015, 21:16:01 CET »
0
Evidentemente allora non ho capito come si usano le SharedPreference...mi daresti una mano please? :D

Non so se può essere utile ma questa è l'implementazione della classe Person
Codice (Java): [Seleziona]
package User;

import android.os.Parcel;
import android.os.Parcelable;

/**
 * Created by phate on 17/12/15.
 */

public class Person implements Parcelable {
    private String personName;
    private String personSurname;
    private String university;
    private String cdl;
    private String kindOfCourse;
    private int cfu;

    public Person(String personName, String personSurname, String university, String cdl, String kindOfCourse, int cfu) {
        this.personName = personName;
        this.personSurname = personSurname;
        this.university = university;
        this.cdl = cdl;
        this.kindOfCourse = kindOfCourse;
        this.cfu = cfu;
    }

    private Person(Parcel in){
        this.personName = in.readString();
        this.personSurname = in.readString();
        this.university = in.readString();
        this.cdl = in.readString();
        this.kindOfCourse = in.readString();
        this.cfu = in.readInt();
    }

    public String getPersonName() {
        return personName;
    }

    public void setPersonName(String personName) {
        this.personName = personName;
    }

    public String getPersonSurname() {
        return personSurname;
    }

    public void setPersonSurname(String personSurname) {
        this.personSurname = personSurname;
    }

    public String getUniversity() {
        return university;
    }

    public void setUniversity(String university) {
        this.university = university;
    }

    public String getCdl() {
        return cdl;
    }

    public void setCdl(String cdl) {
        this.cdl = cdl;
    }

    public String getKindOfCourse() {
        return kindOfCourse;
    }

    public void setKindOfCourse(String kindOfCourse) {
        this.kindOfCourse = kindOfCourse;
    }

    public int getCfu() {
        return cfu;
    }

    public void setCfu(int cfu) {
        this.cfu = cfu;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(personName);
        dest.writeString(personSurname);
        dest.writeString(university);
        dest.writeString(cdl);
        dest.writeString(kindOfCourse);
        dest.writeInt(cfu);
    }

    public static final Parcelable.Creator<Person> CREATOR =
            new Parcelable.Creator<Person>(){

                @Override
                public Person createFromParcel(Parcel source) {
                    return new Person(source);
                }

                @Override
                public Person[] newArray(int size) {
                    return new Person[size];
                }
            };
}

Ho il sospetto di aver implementato a m.. anche la classe Person
« Ultima modifica: 17 Dicembre 2015, 21:21:20 CET da PhateDev »

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #9 il: 17 Dicembre 2015, 21:21:56 CET »
0
Ti schematizzo un po' come farei io così capisci come usare le shared (sempre che io lo faccia bene  :D ) e lo adatti come meglio preferisci al programma:

Crei la Prima Activity in cui leggi le Shared Preferences relative ai dati della persona e vedi se hanno dei valori (se sono vuote vuol dire che non hai mai salvato niente e quindi è il primo accesso):
Codice (Java): [Seleziona]
    SharedPreferences sharedPreferences = getSharedPreferences("MYpref", Context.MODE_PRIVATE);
    String nome = sharedPreferences.getString("nome", "");
    String cognome = sharedPreferences.getString("cognome","");
    if(nome.equals("")&&cognome.equals("")) {
        // Nessuna shared salvata! Apri activity di creazione
        Intent intent = new Intent(Activity1.this, Crea.class);
        startActivity(intent);
    }
    else {
        //Shared salvate: non è il primo accesso quindi fai partire l'activity che ti serve
    }


Crei un'activity per creare invece la Person (Crea.class nell'esempio) dove aggiungi i dati (nome, cognome) alle shared:
Codice (Java): [Seleziona]
//Imposti tutte le editText, bottoni ecc ma una volta che premi su "Salva" devi anche salvare le shared:
    SharedPreferences sharedPreferences = getSharedPreferences("MYpref", Context.MODE_PRIVATE);
    SharedPreferences.Editor mEditor = sharedPreferences.edit();
    mEditor.putString("nome", edtPersonName.getText().toString());
    mEditor.putString("cognome", edtPersonSurname.getText().toString());
    mEditor.commit();

Prova e vedi se riesci a risolvere. Se trovi altri problemi dimmelo!

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #10 il: 17 Dicembre 2015, 21:42:43 CET »
0
Prova e vedi se riesci a risolvere. Se trovi altri problemi dimmelo!
Cioè, non ho capito, in pratica dovrei creare un'Activity che decide se chiamare l'Activity di creazione (ramo then del tuo esempio) o se chiamare l'Activity che serve a me (ramo else) ?

Ti spiego la mia situazione: io ho una MainActivity dove nel manifest è segnata come MAIN e LAUNCHER, successivamente ho fatto CreaUserActivity e voglio che questa sia eseguita solamente appena installo l'app, per creare appunto l'utente.

Un'altra cosetta: non ho capito da dove prendono i valori queste righe qua
Codice (Java): [Seleziona]
String nome = sharedPreferences.getString("nome", "");
    String cognome = sharedPreferences.getString("cognome","");


Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #11 il: 17 Dicembre 2015, 22:00:12 CET »
0
Cioè, non ho capito, in pratica dovrei creare un'Activity che decide se chiamare l'Activity di creazione (ramo then del tuo esempio) o se chiamare l'Activity che serve a me (ramo else) ?

Ti spiego la mia situazione: io ho una MainActivity dove nel manifest è segnata come MAIN e LAUNCHER, successivamente ho fatto CreaUserActivity e voglio che questa sia eseguita solamente appena installo l'app, per creare appunto l'utente.
Ovviamente puoi usare la MainActivity come prima Activity che vede se le shared sono salvate.
(Comunque puoi cambiare la prima activity lanciata proprio cambiando il manifest come avrai capito)

Un'altra cosetta: non ho capito da dove prendono i valori queste righe qua
Codice (Java): [Seleziona]
String nome = sharedPreferences.getString("nome", "");
    String cognome = sharedPreferences.getString("cognome","");
Li prende (o meglio cerca) nel cellulare ovviamente.


Devi semplicemente sistemare il click su salva e ci aggiungi il salvataggio delle shared chiamandole "nome" "cognome" o come ti pare. L'importante è che quando lanci la MainActivity per PRIMA COSA controlli che nel cellulare ci siano shared con quei nomi aventi dei valori ed in base a questo decidi se passare alla creazione o altro insomma..
E' più facile a farsi che a dirsi, credimi. Comunque se hai altri dubbi dimmi ;)

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #12 il: 17 Dicembre 2015, 22:10:42 CET »
0
Credo di aver risolto, ma ancora aspetto a cantar vittoria mettendo il RISOLTO.
In pratica vuoi sapere quale errore del piffero facevo? Lo vedi nel codice che ti ho postato all'inizio, in particolare qui
Codice (Java): [Seleziona]
if (mSharedPreferences.getBoolean("isfirstTime", true)) {
            mEditor.putBoolean("isFirstTime",false);
            mEditor.apply();
controllo sul tag isfirstTime, setto a false il tag isFirstTime.
Accidenti a me e a quando non uso le statiche subito, invece di testare con nomi a caso :D

Offline Klizard

  • Utente junior
  • **
  • Post: 62
  • Respect: 0
    • Mostra profilo
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #13 il: 17 Dicembre 2015, 22:21:43 CET »
0
Credo di aver risolto, ma ancora aspetto a cantar vittoria mettendo il RISOLTO.
In pratica vuoi sapere quale errore del piffero facevo? Lo vedi nel codice che ti ho postato all'inizio, in particolare qui
Codice (Java): [Seleziona]
if (mSharedPreferences.getBoolean("isfirstTime", true)) {
            mEditor.putBoolean("isFirstTime",false);
            mEditor.apply();
controllo sul tag isfirstTime, setto a false il tag isFirstTime.
Accidenti a me e a quando non uso le statiche subito, invece di testare con nomi a caso :D
:D si infatti quella parte non mi era molto chiara :D
Comunque fai qualche prova e ti esce qualche strano errore scrivi qui :)

Offline PhateDev

  • Nuovo arrivato
  • *
  • Post: 13
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Google Nexus 5
  • Sistema operativo:
    Debian 8
Re:Eseguire un activity solo al primo avvio dell'app
« Risposta #14 il: 17 Dicembre 2015, 22:24:29 CET »
0
Comunque fai qualche prova e ti esce qualche strano errore scrivi qui :)
Allora effettivamente funziona a metà.
Questo è il codice di CreateUserActivity
Codice (Java): [Seleziona]
public class CreateUserActivity extends AppCompatActivity {
    private EditText edtPersonName;
    private EditText edtPersonSurname;
    private EditText edtUniversity;
    private EditText edtCdl;
    private EditText edtTotalCfu;
    private Spinner spKindDegree;
    private Button btnSave;
    private Person person;

    private SharedPreferences mSharedPreferences;
    private SharedPreferences.Editor mEditor;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_create_user);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        resourceAssignment();
        populateSpinner();
//        fillCFUEditText(spKindDegree.getSelectedItemPosition());

        btnSave.setOnClickListener(click);
        mSharedPreferences = getSharedPreferences("yourPrefsFileName", Context.MODE_PRIVATE);
        mEditor = mSharedPreferences.edit();

        if (mSharedPreferences.getBoolean("isFirstTime", true)) {
            mEditor.putBoolean("isFirstTime", false);
            mEditor.commit();
        }else{
            Intent intent = new Intent(getApplicationContext(), MainActivity.class);
            startActivity(intent);
            overridePendingTransition(0, 0);
            finish();
        }

    }

    View.OnClickListener click = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             //TODO implementare il salvataggio
            if (checkRequiredValue()) {
                Toast.makeText(getApplicationContext(), "profile saved", Toast.LENGTH_SHORT).show();
                person = new Person(edtPersonName.getText().toString(), edtPersonSurname.getText().toString(),
                        edtUniversity.getText().toString(), edtCdl.getText().toString(),
                        spKindDegree.getSelectedItem().toString(), Integer.parseInt(edtTotalCfu.getText().toString()));

                mEditor.putBoolean("isFirstTime",false);
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                intent.putExtra("profile", person);
                startActivity(intent);
            }
        }
    };
...

e questo è il codice della MainActivity
Codice (Java): [Seleziona]
public class MainActivity extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener{

    private ListView examListView;
    private DatabaseHelper databaseHelper;
    private List<Exam> examList;
    private TextView txtNoExam;
    private DrawerLayout drawerLayout;

    private ExpandableListView expandableListView;
    private ExpandableListAdapter expandableListAdapter;
    private List<String> dadsList = new ArrayList<String>();
    private HashMap<String, List<String>> childList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        databaseHelper = new DatabaseHelper(getApplicationContext());
        examList = databaseHelper.getExamFromExamTable();

//        setContentView(R.layout.activity_main);
        setContentView(R.layout.activity_main_drawer);

        drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        txtNoExam = (TextView) findViewById(R.id.txt_no_exam);
        examListView = (ListView) findViewById(R.id.lst_exam);
//        expandableListView = (ExpandableListView) findViewById(R.id.navigation_menu);

//        prepareItemInNavigationDrawer();
//        expandableListAdapter = new ExpandableListViewAdapter(this, dadsList, childList);
//        expandableListView.setAdapter(expandableListAdapter);


        if (examList.size() == 0){
            txtNoExam.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
            examListView.setLayoutParams(new LinearLayout.LayoutParams(0, 0));
        }else {
            txtNoExam.setLayoutParams(new LinearLayout.LayoutParams(0, 0));
            examListView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
        }

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(fabClick);

        // Icon on toolbar for open the drawer
        ActionBarDrawerToggle actionBarDrawerToggle =
                new ActionBarDrawerToggle(this, drawerLayout, toolbar,
                        R.string.navigation_drawer_open, R.string.navigation_drawer_close);

        drawerLayout.setDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();

        Person person = getIntent().getParcelableExtra("profile");
        Log.d("profilename", person.getPersonName());
...
Al primo avvio mi si apre la CreateUserActivity, metto tutti i miei dati e quando clicco sul bottone passa alla MainActivity e il Log stampa a video il nome che ho inserito.
Chiudendo e riaprendo l'app invece mi da errore (schianta) dicendomi che si sta cercando di invocare il metodo getPersonName() su un oggett nullo
Codice (Java): [Seleziona]
java.lang.RuntimeException: Unable to start activity ComponentInfo{dennis.unaltrolibrettouniversitario/dennis.unaltrolibrettouniversitario.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String User.Person.getPersonName()' on a null object reference.
Se, invece, le ultime due righe che vedi in MainActivity sono commentate, alla chiusura e riapertura dell'app, l'app mi si apre correttamente sulla MainActivity (cosa che prima non faceva, quindi un passettino in avanti l'ho fatto :D )
« Ultima modifica: 17 Dicembre 2015, 22:36:41 CET da PhateDev »