Я новичок в Android, я искал другие темы, но не нашел ничего действительно поучительного. Должно быть, это какая-то неясность, которую я не вижу. Большое спасибо за помощь.
public class Adaptador_RV extends RecyclerView.Adapter<Adaptador_RV.AsignViewHolder> {
List<Asignatura> datos;
public static class AsignViewHolder extends RecyclerView.ViewHolder {
CardView cv;
TextView titulo;
public AsignViewHolder (View view) {
super(view);
cv = (CardView) itemView.findViewById(R.id.cv);
titulo = (TextView) itemView.findViewById(R.id.titulo);
}
}
public Adaptador_RV(List<Asignatura> datos){
this.datos = datos;
}
@NonNull
@Override
public AsignViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View v = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.content_main, viewGroup, false);
AsignViewHolder avh = new AsignViewHolder(v);
return avh;
}
@Override
public void onBindViewHolder(@NonNull AsignViewHolder asignViewHolder, int i) {
asignViewHolder.titulo.setText(datos.get(i).getDatos().get("titulo").toString());
}
@Override
public int getItemCount() {
return datos.size();
}
}
class Asignatura {
private final HashMap<String,Object> datos;
public Asignatura (HashMap<String,Object> datos){
this.datos = datos;
}
public HashMap<String,Object> getDatos (){
return datos;
}
}
public class MainActivity extends AppCompatActivity {
private HashMap<String,Object> test1 = new HashMap<String, Object>();
private HashMap<String,Object> test2 = new HashMap<String, Object>();
private Asignatura asign1;
private Asignatura asign2;
private List<Asignatura> tarjetas = new ArrayList<Asignatura>();
private RecyclerView rv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
test1.put("titulo", "prueba_1");
test2.put("titulo", "prueba_2");
asign2 = new Asignatura(test2);
asign1 = new Asignatura(test1);
setContentView(R.layout.activity_main);
rv = (RecyclerView) findViewById(R.id.rv);
LinearLayoutManager lm = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
rv.setLayoutManager(lm);
tarjetas.add(asign2);
tarjetas.add(asign1);
Adaptador_RV adaptador = new Adaptador_RV(tarjetas);
rv.setAdapter(adaptador);
}
}
Последний добавленный элемент всегда отображается мне, но остальные не отображаются. Я пробовал использовать setIsRecycable (false) в onBindViewHolder, но он тоже не работает.