Добавление jsonarray из recyclview - PullRequest
0 голосов
/ 21 мая 2019

Я добавляю данные в jsonarray всякий раз, когда нажимаю на элемент recyerview. Однако, если я прокручиваю вниз и предыдущая страница не отображается, jsonarray сбрасывается.

@Override
public void onBindViewHolder(final productAdapter.productViewHolder holder, final int position) {

    jsonObject=new JSONObject();
    wrapObject=new JSONObject();
    jsonArray = new JSONArray();

    holder.linearLayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Toast.makeText(context, position+" "+productItem.getName(), Toast.LENGTH_SHORT).show();

            long now = System.currentTimeMillis();
            Date date = new Date(now);
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
            String getTime = sdf.format(date);

            SharedPreferences profilePref = context.getSharedPreferences("myprofile", MODE_PRIVATE);
            idPf = profilePref.getString("id", "");
            genderPf = profilePref.getString("gender", "");
            ageGroupPf = profilePref.getString("ageGroup", "");

            try {
                jsonObject.put("id",idPf);
                jsonObject.put("gender",genderPf);
                jsonObject.put("ageGroup",ageGroupPf);
                jsonObject.put("category",productItem.getCategory());
                jsonObject.put("timeStamp",getTime);
                jsonObject.put("product",productItem.getName());
                jsonObject.put("view",ANDROID_VIEW);
                jsonObject.put("status",PURCHASE_STATUS);
                jsonArray.put(jsonObject);

                System.out.println("@@jsonArray.lenth: "+jsonArray.length()+" jsonArray: "+jsonArray);

            } catch (JSONException e) {
                e.printStackTrace();
            }

            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent.setData(Uri.parse(productItem.getProductLink()));
            context.startActivity(intent);
        }
    });
}

Я хочу продолжить добавление данных в jsonarray независимо от прокрутки.

1 Ответ

0 голосов
/ 21 мая 2019

Для этого вам нужно инициализировать JsonArray вне метода onBindViewHolder, например, инициализировать его в верхней части класса адаптера

public Adapter {
    JSONArray jsonArray = new JSONArray();

/////further code here
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...