mysqliデータベースからボレーの文字列リクエストを通じてアンドロイドリサイクルビューにデータを取得しています。手動リフレッシュをせずにアイテムが追加されたときに、リサイクラビューをリフレッシュする必要があります。 notifyDataSetChangedをメインアクティビティのcreateメソッドに追加しましたが、アイテムが追加されると、リサイクラビューは更新されません。以下は私のコードです:リサイクラービューの更新が機能しない
public class MainActivity extends AppCompactActivity {
RecyclerView recyclerView;
RecyclerLayout adapter;
List <Recycler> arrayList;
private static final String url = "http://example.com";
@Override
//overriding the onCreate method from its super class
{
recyclerView = findViewById (R.id.recycler);
arrayList = new ArrayList <>();
retrieveData();
recyclerView.setHasFixedSize (true);
recyclerView.setLayoutManager (new LinearLayoutManager (this));
adapter = new adapter(getApplicationContext());
recyclerView.setAdapter (adapter);
adapter.notifyDataSetChanged();
}
private void retrieveData(){
StringRequest stringRequest = new StingRequest(Request.Method.POST, url,
new Response.Listener <String>();
@Override
public void onResponseListener (response){
//surround jsonArray with try and catch
JsonArray array = new JsonArray (response);
for (int i = o; i < array.length(); i++){
JsonObject object = array.getJsonObject(i) ;
arrayList.add (new Recycler (
object.getString ("text")))
}
},
new Response.ErrorListener <>()
/**overriding the error listener method**/);
//adding the volley request on a queue
}
}
//Recycler adapter class
public class RecyclerLayout extends RecyclerView.adapter <RecyclerLayout.RecyclerHolder>{
Context ctx;
List <Recycler> arrayList;
RecyclerLayout(Context ctx, List <Recycler> arrayList){
this.ctx=ctx;
this.arrayList = arrayList;
}
@Override
//creating the view
@Override
//implementing the onBind method
@Override
//implementing the getItemCount method
RecyclerHolder extends RecyclerView.ViewHolder {
}
}
//Recycler j son store
public class Recycler {
private String text;
Recycler (String text){
this.text = text;
}
public String getText(){
return text;
}
}