首先让我说我是Android的初学者,我的英语基本,我可以理解答案,但也许我的写作方式不正常或正确。
所以,放开我的问题:
我正在为一个课程做一个项目,我已经用#34;宠物"做了第一次回收,每个宠物都有一个按钮,你可以给#34;喜欢"而这些"喜欢"将保存在textview中。
我有第二个回收视图,类似于第一个,第二个将显示我给的最后5只宠物"喜欢"在第一个Recyclerview中。
我需要在第二个回收者视图中显示"喜欢"我在第一次回收评估中给了每只宠物。我怎么能这样做?我如何在recyclerview的每个元素中接收这些数据?我需要第二个适配器或另一个arrayList吗?
我的代码完美无缺,直到我尝试接收数据,然后应用程序崩溃,我尝试了很多方法,但我不确定我做错了什么。 (我对recyclerviews有这个问题,我只是看到与其他没有回收查看的活动不一样的方法)。
下面我会看到一些代码:
MainActivity.class中的onCreate
public void inicializarLista(){
mascotasList = new ArrayList<Mascotas>();
mascotasList.add(new Mascotas(R.drawable.loro,"Coti el loro"));
mascotasList.add(new Mascotas(R.drawable.hamster,"El Ghamster"));
mascotasList.add(new Mascotas(R.drawable.tortuga,"Turtle Ninja"));
mascotasList.add(new Mascotas(R.drawable.perro,"Mochi"));
mascotasList.add(new Mascotas(R.drawable.conejo,"Bonny"));
}
public MascotasAdapter adapter;
public void inicializarAdaptador(){
adapter = new MascotasAdapter(this, mascotasList);
mascotaRecycler.setAdapter(adapter);
}
public void cliclearBoton(){
ImageButton favoritas = findViewById(R.id.favoritasCinco);
favoritas.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TextView cantLikes = findViewById(R.id.tvCantidad);
String dlikes = cantLikes.getText().toString();
Intent i = new Intent(MainActivity.this, MascotasFavoritas.class);
i.putExtra("loslikes", dlikes);
startActivity(i);
}
});
}
在我的MascotaAdapter.class中的onBindViewHolder下面
public void onBindViewHolder(final MascotasViewHolder mascotasHolder, final int position) {
final Mascotas mascotasList = mascotas.get(position);
mascotasHolder.imFoto.setImageResource(mascotasList.getIvFoto());
mascotasHolder.textNombre.setText(mascotasList.getNombre());
mascotasHolder.ibDarLike.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Snackbar.make(v,"Diste like a "+ mascotasList.getNombre(),Snackbar.LENGTH_SHORT).show();
int plusLike = Integer.parseInt(mascotasHolder.textCantidadLikes.getText().toString());
mascotasHolder.textCantidadLikes.setText(String.valueOf(plusLike + 1));
}
});
}
EjecutarAmpliar
在我在MascotaFavoritas.class中的onCreate里面的函数下面(这里我想要接收数据)。
void inicializarFavoritas(){
favoritasList = new ArrayList<Mascotas>();
favoritasList.add(new Mascotas(R.drawable.perro,"Mochi"));
favoritasList.add(new Mascotas(R.drawable.conejo,"Bonny"));
favoritasList.add(new Mascotas(R.drawable.loro,"Coti el loro"));
favoritasList.add(new Mascotas(R.drawable.hamster,"El Ghamster"));
favoritasList.add(new Mascotas(R.drawable.tortuga,"Turtle Ninja"));
}
public MascotasAdapter adapter;
public void inicializarAdaptador(){
adapter = new MascotasAdapter(this, favoritasList);
favoritasRecycler.setAdapter(adapter);
}
public void recibirLikes(){
TextView receptorLikes = findViewById(R.id.tvCantidad);
Bundle parametros = this.getIntent().getExtras();
String datoLike = parametros.getString("loslikes");
receptorLikes.setText(datoLike);
}
谢谢你们,如果你能帮助我,对不起我用英语写的坏方法。感谢您的帮助。
答案 0 :(得分:0)
根据我对你的问题的理解。我正确,这两个recyclerViews在单独的活动中。如果是这样,您可以将数据从“回收者”视图传递到新活动,在其中您可以根据从上一个活动中收到的数据来设置“回收者视图”数据。现在,由于两个回收者视图使用的数据类型都不同。您需要使用两个单独的回收站视图。