Bei der Anforderung einiger neuer Daten aktualisiert Recycler View Adapter Daten am Ende der vorherigen Daten, wo ich nur die neuesten/frisch angeforderten Daten auf dem Bildschirm anzeigen und die vorherige löschen möchte Daten. Unten ist der Adaptercode, bei Bedarf kann anderer Code angezeigt werden.Recyclerview Aktualisierung der Daten am Ende der vorherigen Daten
private LayoutInflater inflater;
Context context;
List<Data> dataArray, dataArray1, dataArray2;
public RecyclerViewAdapter(Context context, List<Data> dataArray) {
swap(dataArray1);
this.dataArray1 = dataArray;
this.context = context;
inflater = LayoutInflater.from(context);
}
private void swap(List<Data> dataArray1){
if (this.dataArray1 != null) {
this.dataArray.clear();
System.out.println(dataArray1);
}
notifyDataSetChanged();
}
@Override
public RecyclerViewAdapter.CustomViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.cardview, null);
CustomViewHolder holder = new CustomViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(CustomViewHolder holder, int position) {
Data current = dataArray1.get(position);
//holder.image.setImageResource(current.Limage);
holder.textView1.setText(current.heading);
holder.textView2.setText(current.date);
}
@Override
public int getItemCount() {
return dataArray1.size();
}
public static class CustomViewHolder extends RecyclerView.ViewHolder {
//ImageView image;
TextView textView1, textView2;
public CustomViewHolder(View itemView) {
super(itemView);
// image = (ImageView)itemView.findViewById(R.id.Limage);
textView1 = (TextView) itemView.findViewById(R.id.heading);
textView2 = (TextView) itemView.findViewById(R.id.date);
}
}
}
Aktivitätscode lautet:
public RecyclerViewAdapter recyclerViewAdapter;
Toolbar toolbar;
public RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main_news);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
String url = "*****";
new JSONAsync(getApplicationContext()).execute(url);
recyclerView = (RecyclerView)findViewById(R.id.recyclerView);
recyclerViewAdapter = new RecyclerViewAdapter(MainNews.this, JSONAsync.dataArray);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(layoutManager);
recyclerView.setAdapter(recyclerViewAdapter);
recyclerView.setItemAnimator(new DefaultItemAnimator());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
return super.onOptionsItemSelected(item);
}
}
Jede Hilfe sehr geschätzt werden würde.
Verwenden Sie keinen Konstruktor, um Daten in recyclerView zu aktualisieren. –