Я использовал переработчик в своем проекте. У меня проблема с обновлением данных. Я хочу использовать метод notifyItemRangeInserted () или notifyItemInserted (), но ни один из них не работает (массив данных обновлен, но новый элемент не отображается в представлении реселлера). Это действительно сбивает с толку, потому что notifyDataSetChanged () работает.
Я пробовал как notifyItemInserted (index), так и notifyItemRangeInserted (startIndex ,ppedCount), но ни один из них не работает. Я также погуглил эту проблему, но я не нашел подобной проблемы.
RequestQueue queue = Volley.newRequestQueue(this);
StringRequest postRequest = new StringRequest(Request.Method.POST, UrlHouse.MOMENT_EXTENTION,
response -> {
// response
Log.e("moment_extention", response);
try {
JSONArray momentArray = new JSONArray(response);
CustomJsonParser jsonParser = new CustomJsonParser(this);
for(int i = 0; i < momentArray.length(); i++){
JSONObject c = momentArray.getJSONObject(i);
momentArrayList.add(jsonParser.parseMomentData(c));
}
if (momentArray.length() > 0){
runOnUiThread(() -> {
Log.e("item_count", String.valueOf(mAdapter.getItemCount()));
//mAdapter.notifyDataSetChanged();
//mAdapter.notifyItemInserted(10);
mAdapter.notifyItemRangeInserted(momentArrayList.size() - momentArray.length(), momentArray.length());
});
}
if (momentArray.length() < 10){
stopLoading = true;
extentionLoading.setVisibility(View.GONE);
}else{
extentionLoading.setVisibility(View.VISIBLE);
}
} catch (JSONException e) {
e.printStackTrace();
}
},
error -> {
// error
}
) {
@Override
protected Map<String, String> getParams()
{
Map<String, String> params = new HashMap<String, String>();
params.put("key_owner", userData.getUserId());
params.put("session_key", userData.getLoginKey());
params.put("user_id", userData.getUserId());
params.put("excluded_post", getExcludedPost());
return params;
}
};
postRequest.setRetryPolicy(new DefaultRetryPolicy(24 * 60 * 60 * 1000, 0, 1f) );
queue.add(postRequest);
Я хочу, чтобы элемент в программе просмотрщика обновил новые данные. в моем случае после обновления адаптера на экране должно отображаться 20 элементов (10 исходных элементов и 10 новых элементов), но вместо отображения 20 элементов отображаются только 10 элементов (только 10 исходных элементов)