El adapter mostrara los datos bien en una lista (RecyclerView) - creamos un xml para cada elemento de la lista - creamos un miAdapter que implementa RecyclerView.Adapter - se crea una clase interna - un constructor al que le entra una View - de esa view sacamos elementos de la vista (view.findViewById()) - estos estaran todos en esta clase (2 o 3 TextViews por ejemplo) - el contexto lo tendremos que recibir en el constructor del adapter - tambien tendremos el ArrayList de lo que haga falta (inicializa vacio en el constructor) - el array se llena en un addAll() que recibe otra lista - tambien tenemos un OnClickListener vacio, por si lo implementamos - implementamos los metodos necesarios: - miViewHolder() infla el xml - View v = ((LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE)).inflate (R.layout.miLayout, viewGroup, false); - a view le podemos asignar aqui nuestro listener si tenemos uno en la clase - creamos un miViewHolder (la clase interna) - returneamos la clase interna - onBindViewHolder() - a los campos del objeto que viene le asignamos datos - getItemCount() - devuelve el count de la lista creada - tenemos de extra un clear() que no usamos - si implementamos View.OnClickListener podemos sobreescribir el onClick y que haga algo. - para ordenar una lista lo hacemos en metodos aqui, la lista suele llegar en showMiObjeto y lo hacemos con: miArrayList.sort((x,y)->x.getDescription().compareTo(y.getDescription()));