0
私はrecyclerviewとCardViewを使用してデータを表示し、さらにデータを表示するためにリフレッシュする方法を実践しています。しかし、何とか更新すると、最後のデータの最後に新しいデータが表示されます。私はどのようにリフレッシュし、リストの上にそれを表示するのだろうか?リフレッシュ後にRecyclerViewの上にデータを表示する必要があります
これは私のカードアダプター
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.superheroes_list, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
SuperHero superHero = Data.get(position);
final String textx = superHero.getPublisher();
float ratingss = Float.parseFloat(textx);
holder.textViewName.setText(superHero.getName());
holder.textViewPublisher.setText(superHero.getPublisher());
holder.rate.setRating(ratingss);
}
@Override
public int getItemCount() {
return Data.size();
}
class ViewHolder extends RecyclerView.ViewHolder{
//Views
public TextView textViewName;
public TextView textViewPublisher;
public RatingBar rate;
//Initializing Views
public ViewHolder(View itemView) {
super(itemView);
textViewName = (TextView) itemView.findViewById(R.id.textViewName);
textViewPublisher = (TextView) itemView.findViewById(R.id.textViewPublisher);
rate = (RatingBar) itemView.findViewById(R.id.ratingBar);
}}
であり、これは私の主な活動
private JsonArrayRequest getDataFromServer(int requestCount) {
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Config.DATA_URL + String.valueOf(requestCount),
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
parseData(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
//If an error occurs that means end of the list has reached
Toast.makeText(MainActivity.this, "No More Items Available", Toast.LENGTH_SHORT).show();
}
});
//Returning the request
return jsonArrayRequest;
}
private void getData() {
requestQueue.add(getDataFromServer(requestCount)); requestCount++;
}
private void parseData(JSONArray array) {
for (int i = 0; i < array.length(); i++) {
SuperHero superHero = new SuperHero();
JSONObject json = null;
try {
json = array.getJSONObject(i);
superHero.setName(json.getString(Config.TAG_NAME));
superHero.setPublisher(json.getString(Config.TAG_PUBLISHER));
} catch (JSONException e) {
e.printStackTrace();
}
listSuperHeroes.add(superHero);
ですそして最後に、これはすべてのヘルプは次のようになり、私はデータ
mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeRefreshLayout);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
Toast.makeText(getApplicationContext(), "New Data Added", Toast.LENGTH_LONG).show();
getData();
}
});
を取得し、私のリフレッシュです感謝。事前にみんなありがとう! :D
変更listSuperHeroes.add(スーパーヒーロー)。 listSuperHeroes.add(0、superHero); –
@tinysunlightこんにちはありがとうございました。本当にありがとう! :D –