Сохранение ответа JSON в глобальном масштабе - PullRequest
0 голосов
/ 16 марта 2020

Я интегрировал один веб-сервис. Проанализировал данные, используя GSON и инициализированный класс model / pojo.

Теперь у меня есть требование к глобальному доступу к этому классу Model / Pojo по всему приложению.

Я хочу, чтобы этот класс проверял разные вещи в отдельных действиях и фрагментах.

Как сделать класс Model / Pojo доступным во всем приложении?

Спасибо.

Ответы [ 3 ]

1 голос
/ 16 марта 2020

Вы должны сделать синглтон класса DataSource и использовать его в своем приложении:

public class JsonDataSource {
    private static JsonDataSource instance = new JsonDataSource();

    // your json data model
    private JsonData data;

   // private constructor to prevent creating new instances
    private JsonDataSource() { 
    }

    public static JsonDataSource getInstance() {
        return instance;
    }

    public JsonData getData() {
        return data;
    }

    public void setData(JsonData data) {
        this.data = data;
    }
}

, тогда вы можете использовать вот так

// set data
JsonDataSource.getInstance().setData(jsonData);

// get data
JsonData data =  JsonDataSource.getInstance().getData();
1 голос
/ 16 марта 2020
Simple and easy way Just create getter and setter in your root Application Class
and access it globally within the application using getter method

private String jsonData;

 public String getmJsonData()
    {
        return jsonData;
    }

    public void setjsonData(String jsonData) {
        this.jsonData= jsonData;
    }


//Set Data

((Your_application_class)getApplicationContext()).setjsonData(data);

//get Data

((Your_application_class)getApplicationContext()).getjsondata());
0 голосов
/ 16 марта 2020

сохраните json в SharedPreferences. попробуйте это:

    public class MySessionManager {
    public Context context;
    private final String PREF_SD_INFO = "Share_Preference";
    private final String KEY_DEF = "KEY_PRE";
    public MySessionManager(Context context) {
            this.context = context;
        }

//save your json data
public void setSongs(SongsList songs) {
            if (context != null) {
                SharedPreferences LoginPref = context.getSharedPreferences(PREF_SD_INFO, 
                Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = LoginPref.edit();
                Gson gson = new Gson();
                songsLists.add(songs);
                String json = gson.toJson(songsLists);
                editor.putString(KEY_PRE, json);
                editor.apply();

            }


//get your json data
    public ArrayList<SongsList> getSongs() {
            if (context != null) {
                SharedPreferences LoginPref = context.getSharedPreferences(PREF_SD_INFO, 
                Context.MODE_PRIVATE);
                Gson gson = new Gson();
                String json = LoginPref.getString(KEY_PRE, null);
                Type type = new TypeToken<ArrayList<SongsList>>() {
                }.getType();
                return gson.fromJson(json, type);
            } else {
                return null;
            }
        }
        }

    }
...