JSONObjectRequest не может заполнить объект данными - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь заполнить объект данными, которые я прочитал из URL JSON.

    public JSONHandler(final ImageButton canli, final ImageButton indie, final ImageButton easy, final ImageButton karisik, final ImageButton rock) {
    request = new JsonObjectRequest(Request.Method.GET, url, null,
            new Response.Listener<JSONObject>() {
                @Override
                public void onResponse(JSONObject response) {
                    try {
                        channelObject = response.getJSONObject("channel0");
                        song = channelObject.getString("song");
                        artist = channelObject.getString("artist");
                        duration = channelObject.getInt("duration");
                        playedAt = channelObject.getInt("playedat");
                        channelImg = channelObject.getString("image_extralarge");
                        channel0 = new Channel(song, artist, duration, playedAt, channelImg);
                        Picasso.get().load(channel1.getImg()).fit().into(indie);

Я использую эту структуру для заполнения ImageButton и других вещей.Как вы можете видеть, я могу заполнить только кнопки и т. Д. Внутри моего метода.Это способ взять объект channel1 в моем методе и сохранить его для последующих ситуаций?

1 Ответ

0 голосов
/ 10 декабря 2018

Вы можете сохранить каждое поле в sharedPreference или вы можете:

Добавить это в файл Gradle,

внедрение 'com.google.code.gson: gson: 2.8.5'

Для ввода данных:

SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
Gson gson = new Gson();
String res = gson.toJson(channel0);
editor.putString("data", res);
editor.apply();

Для получения данных:

SharedPreferences prefs = getSharedPreferences("myPrefs", MODE_PRIVATE);
Gson gson = new Gson();
String data = prefs.getString("data", "");
Channel obj = gson.fromJson(data, Channel.class);
...