Я создаю приложение, похожее на приложение instagram, но только администратор может добавлять содержимое. Я использовал python django для моего бэкэнда, но когда я добавляю новый элемент в свою базу данных django, он наступает последним на recyclerview. Я хочу, чтобы это было так, что, когда я добавляю новый элемент, он наступает первым, когда вы открываете мое приложение, например, как сначала показывает последние элементы. Это мой пользовательский класс адаптерКак показать недавно добавленные элементы сначала в recyclerview
public class DealAdapter extends RecyclerView.Adapter<DealAdapter.DealHolder> {
Context context;
ArrayList<Deal> arrayList;
public DealAdapter(Context context, ArrayList<Deal> arrayList) {
this.context = context;
this.arrayList = arrayList;
}
@Override
public DealHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.deal_cardview, parent, false);
DealHolder dealHolder = new DealHolder(v);
return dealHolder;
}
@Override
public void onBindViewHolder(DealHolder holder, int position) {
Deal deal = arrayList.get(position);
holder.title.setText(deal.getTitle());
Picasso.with(context).
load(deal.getImage()).
placeholder(R.drawable.loading).
error(android.R.drawable.stat_notify_error).
into(holder.image);
}
@Override
public int getItemCount() {
if(arrayList != null) {
return arrayList.size();
}else {
return 0;
}
}
public class DealHolder extends RecyclerView.ViewHolder {
TextView title;
ImageView image;
public DealHolder(View itemView) {
super(itemView);
title = (TextView) itemView.findViewById(R.id.tvTitle);
image = (ImageView) itemView.findViewById(R.id.ivImage);
}
}
}
Это мой основной класс активности
public class MainActivity extends AppCompatActivity {
RecyclerView recyclerView;
String TAG = "MainActivity";
ImageButton ibMore;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.rvRecyclerview);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
recyclerView.setLayoutManager(layoutManager);
String url = "http://192.168.43.2/api/deals/?format=json";
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
ArrayList<Deal> userList = new JsonConverter<Deal>().
toArrayList(response, Deal.class);
DealAdapter adapter = new DealAdapter(getApplicationContext(), userList);
recyclerView.setAdapter(adapter);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.d(TAG, error.toString());
Toast.makeText(getApplicationContext(), "Something Went wrong: " + "'" + error + "'", Toast.LENGTH_LONG).show();
}
});
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(stringRequest);
}
}
Я думаю, что [setStackFromEnd] (https://developer.android.com/reference/android/support/v7/widget/LinearLayoutManager.html#setStackFromEnd (булево)) будет делать для вас – Rehan
я использовал его, но он отображает список из buttom. это не то, как я этого хочу. Я хочу, чтобы он отображал представление сверху, но сначала показывал последнее. как какой-то обратный –
Затем попробуйте [Collections.reverse] (https://developer.android.com/reference/java/util/Collections.html#reverse (java.util.List >)), чтобы перенести последний элемент на первый место и первый элемент для последнего – Rehan