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 –