MySQLから常にRecycleView
に更新されたデータを表示したいとします。しかし、私が別のデバイスからデータを追加すると、私のデバイスでは更新できません。これは私のコードonCreateView()
です。どこにnotifyDataSetChanged()を置くことができますか?
requestQueue = Volley.newRequestQueue(getContext());
list_data = new ArrayList<HashMap<String, String>>();
stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response", response);
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray jsonArray = jsonObject.getJSONArray("result");
for (int a = 0; a < jsonArray.length(); a++) {
JSONObject json = jsonArray.getJSONObject(a);
HashMap<String, String> map = new HashMap<String, String>();
map.put("nama", json.getString("nama"));
map.put("isi", json.getString("isi"));
map.put("poto", json.getString("poto"));
map.put("id", json.getString("id"));
list_data.add(map);
AdapterChat adapter = new AdapterChat(chat.this, list_data);
lvhape.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
} catch (JSONException e) {
e.printStackTrace();
Toast.makeText(getActivity(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getActivity(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
requestQueue.add(stringRequest);
と、これは私のアダプターのコードです:
Context context;
ArrayList<HashMap<String, String>> list_data;
public AdapterChat(chat chat, ArrayList<HashMap<String, String>> list_data) {
this.context = chat.getContext();
this.list_data = list_data;
notifyDataSetChanged();
}
私はnotifyDataSetChanged
を置くことができますか?
あなたがこれを行うことができ、私に
この質問は、「RecycleView」または「notifyDataSetChanged」とは関係ありません。 複数のデバイスを「ポーリング」または即時通知(ソケットやプッシュ通知など)と同期させる必要があります – Codus
google firebase ここhttps://firebase.google.com/docs/android/setup – Dennis
Firebaseを同期できるかどうかmysqlで? –