Search code examples
javaandroidandroid-activity

Send data amongst three activities


I have 3 activities, that connect like this: A -> B -> C.

On A you input a text that will be used in C, then B opens and you input another text to be used in C. But when C opens, produces null errors.

I came up with a solution, to start A then go directly to C and onCreate of C, start B as if it was going from A to B.

Is there a better solution? Is my solution decent or will it cause more problems than it fixes? Thanks for any help.


Solution

  • There are several options - Intent extras, SharedPreferences, SQLite database, internal/external storage, Application class, static data classes etc.

    For situation you've explained, I recommend using SharedPreferences to store data, it's relatively easy approach and you can access stored data at any time from any Activity or class, here is a simple usage guide:

    Input data into SharedPreferences:

    SharedPreferences.Editor editor = getSharedPreferences("YourPrefsFile", MODE_PRIVATE).edit();
     editor.putString("name", "Elena");
     editor.putInt("idName", 12);
     editor.apply();
    

    Get data from SharedPreferences:

    SharedPreferences prefs = getSharedPreferences("YourPrefsFile", MODE_PRIVATE); 
    String restoredText = prefs.getString("text", null);
    if (restoredText != null) {
      String name = prefs.getString("name", "");
      int idName = prefs.getInt("idName", 0);
    }