I have a strange error in my code. I am using Recycler View (used in the past without any problems). I created an ArrayList test to show it in Recycler, but I got the only first line in the RecyclerView and after it the application stops (does not work), as ArrayList is completed.
My main code is:
@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_all_tab, container, false); Activity activity = getActivity(); //TODO: For testing ONLY ArrayList<Order> orders = new ArrayList<>(); for(int i = 0; i < 10; i++) { orders.add(new Order(i, i, i)); } // Initialising Orders Recycler View. OrderAdapter orderAdapter = new OrderAdapter(activity, orders); RecyclerView recyclerViewOrders = (RecyclerView) view.findViewById(R.id.recylerViewAllDiners); recyclerViewOrders.setLayoutManager(new LinearLayoutManager(activity)); recyclerViewOrders.setAdapter(orderAdapter); return view; }
Adapter:
package com.slavafleer.tipcalculator; import android.content.Context; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import java.util.ArrayList; public class OrderAdapter extends RecyclerView.Adapter<OrderHolder> { private Context context; private ArrayList<Order> orders; public OrderAdapter(Context context, ArrayList<Order> orders) { this.context = context; this.orders = orders; } @Override public OrderHolder onCreateViewHolder(ViewGroup parent, int viewType) { LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = layoutInflater.inflate(R.layout.item_order, parent, false); return new OrderHolder(view); }
Holder:
package com.slavafleer.tipcalculator; import android.support.v7.widget.RecyclerView; import android.view.View; import android.widget.TextView; public class OrderHolder extends RecyclerView.ViewHolder { private TextView textViewOrderId; private TextView textViewDinerId; private TextView textViewPrice; public OrderHolder(View itemView) { super(itemView); textViewOrderId = (TextView) itemView.findViewById(R.id.textViewOrderId); textViewDinerId = (TextView) itemView.findViewById(R.id.textViewDinerId); textViewPrice = (TextView) itemView.findViewById(R.id.textViewPrice); }
java android android-recyclerview recycler-adapter
Slava
source share