Clase AdaptadorPersonajes
public class AdaptadorPersonajes extends
RecyclerView.Adapter<AdaptadorPersonajes.ViewHolderPersonajes>{
public static final String Nombre = "Nombre";
public static final String descripcion = "descripcion";
ArrayList<PersonajeVo> listaPersonajes;
public AdaptadorPersonajes(ArrayList<PersonajeVo> listaPersonajes)
{
this.listaPersonajes = listaPersonajes;
}
@Override
public ViewHolderPersonajes onCreateViewHolder( ViewGroup parent,
int i) {
View view=
LayoutInflater.from(parent.getContext()).inflate(R.layout.iem_list_per
sonajes,null,false);
return new ViewHolderPersonajes(view);
}
@Override
public void onBindViewHolder( ViewHolderPersonajes holder, int
position) {
holder.etiNombre.setText(listaPersonajes.get(position).getNombre());
holder.etiInformacion.setText(listaPersonajes.get(position).getInfo())
;
holder.foto.setImageResource(listaPersonajes.get(position).getFoto());
@Override
public int getItemCount() {
return listaPersonajes.size();
}
public class ViewHolderPersonajes extends RecyclerView.ViewHolder
implements View.OnClickListener {
TextView etiNombre,etiInformacion;
ImageView foto;
public ViewHolderPersonajes(@NonNull View itemView) {
super(itemView);
itemView.setOnClickListener(this);
etiNombre= (TextView)
itemView.findViewById(R.id.idNombre);
etiInformacion= (TextView)
itemView.findViewById(R.id.idInfo);
foto= (ImageView) itemView.findViewById(R.id.idImagen);
}
@Override
public void onClick(View v) {
Context context = v.getContext();
int position = getAdapterPosition();
PersonajeVo personaje = listaPersonajes.get(position);
Intent intent = new Intent(v.getContext(),
EditarPersonaje.class);
intent.putExtra(Nombre, personaje.getNombre());
intent.putExtra(descripcion,personaje.getInfo());
context.startActivity(intent);
}
}
}
clase EditarPersonaje
public class EditarPersonaje extends AppCompatActivity {
private String nombre;
private String info;
TextView tvnombre;
TextView tvinfo;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editar_personaje);
nombre = getIntent().getStringExtra(Nombre);
info = getIntent().getStringExtra(descripcion);
tvnombre = (TextView)findViewById(R.id.textView);
tvnombre.setText(nombre);
tvinfo = (TextView)findViewById(R.id.textView2);
tvinfo.setText(info);
public void onClick(View view) {
finish();
}
}
clase MainActivity
public class MainActivity extends AppCompatActivity {
private ArrayList<PersonajeVo> listaPersonajes;
private RecyclerView recyclerPersonajes;
private AdaptadorPersonajes adaptador;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listaPersonajes=new ArrayList<>();
recyclerPersonajes= (RecyclerView)
findViewById(R.id.RecyclerId);
recyclerPersonajes.setLayoutManager(new
LinearLayoutManager(this));
llenarPersonajes();
inicializaAdaptador();
AdaptadorPersonajes adapter=new
AdaptadorPersonajes(listaPersonajes);
recyclerPersonajes.setAdapter(adapter);
private void llenarPersonajes() {
listaPersonajes.add(new PersonajeVo("Krusty","Herschel
Shmoikel Pinkus Yerocham Krustofsky, conocido como Krusty el payaso,
es un personaje de la serie de dibujos animados Los
Simpson.",R.drawable.krusti));
listaPersonajes.add(new PersonajeVo("Homero","Homer Jay
Simpson es uno de los protagonistas de la serie. Es el padre de la
familia protagonista y uno de los personajes centrales y más
importantes de la serie.",R.drawable.homero));
listaPersonajes.add(new PersonajeVo("Marge","Marjorie
\"Marge\" Bouvier Simpson una de los protagonistas de la serie. Es la
esposa de Homer Simpson y madre de los tres hijos que ha tenido de
esta unión amorosa: Bart, Lisa y Maggie. ",R.drawable.marge));
listaPersonajes.add(new PersonajeVo("Bart","Bartholomew JoJo
«Bart» Simpson, es uno de los protagonistas de la serie. Bart tiene 10
años y es el primogénito, y único hijo varón de Homer y Marge Simpson.
",R.drawable.bart));
listaPersonajes.add(new PersonajeVo("Lisa","Lisa Marie Simpson
es una de las protagonistas de la serie. Es la hija mediana de Homer y
Marge Simpson, y hermana de Bart y Maggie. Goza de notable
protagonismo y complejidad en la serie.",R.drawable.lisa));
listaPersonajes.add(new PersonajeVo("Magie","Margaret Evelyn
\"Maggie\" Simpson es una de las protagonistas de la serie. Es la
tercera hija del matrimonio protagonista, Homer y Marge Simpson, y la
más joven de ellos.",R.drawable.magie));
listaPersonajes.add(new PersonajeVo("Flanders","Nedward «Ned»
Flanders es un personaje ficticio de la serie de televisión de dibujos
animados Los Simpson. La voz original en inglés es de Harry
Shearer.",R.drawable.flanders));
listaPersonajes.add(new PersonajeVo("Milhouse","Milhouse
Mussolini Van Houten es un personaje ficticio de la serie animada Los
Simpson, creado por Matt Groening.",R.drawable.milhouse));
listaPersonajes.add(new PersonajeVo("Mr. Burns","Charles
Montgomery Burns, más conocido como el señor Burns o Monty Burns, es
un personaje ficticio recurrente de la serie de televisión de dibujos
animados Los Simpson, creada por Matt Groening.",R.drawable.burns));
}
private void inicializaAdaptador() {
adaptador = new AdaptadorPersonajes(listaPersonajes);
recyclerPersonajes.setAdapter(adaptador);
}
private ItemTouchHelper.Callback createHelperCallback(){
ItemTouchHelper.SimpleCallback simpleItemTouchCallback =
new ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP
| ItemTouchHelper.DOWN,
ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT){
@Override
public boolean onMove(RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
moveItem(viewHolder.getAdapterPosition(),target.getAdapterPosition());
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder
viewHolder, int direction) {
deleteItem(viewHolder.getAdapterPosition());
}
};
return simpleItemTouchCallback;
}
private void moveItem(int oldPos, int newPos){
PersonajeVo item= (PersonajeVo)listaPersonajes.get(oldPos);
listaPersonajes.remove(oldPos);
listaPersonajes.add(newPos, item);
adaptador.notifyItemMoved(oldPos, newPos);
}
private void deleteItem(final int position){
listaPersonajes.remove(position);
adaptador.notifyItemRemoved(position);
clase PersonajeVo
public class PersonajeVo {
private String nombre;
private String info;
private int foto;
public PersonajeVo(){
public PersonajeVo(String nombre, String info, int foto) {
this.nombre = nombre;
this.info = info;
this.foto = foto;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
public int getFoto() {
return foto;
}
public void setFoto(int foto) {
this.foto = foto;
}
}
implementation 'com.android.support:recyclerview-v7:28.0.0'