I am using a RecyclerView
to show a lista
of usuarios
. And I would like that when doing click
in the items
of the lista
a layout
is launched showing me the information that I have saved in my bd
of usuario
selected, without starting a new actividad
. I share the code to see if you can help me.
MyDialog Box
public class MiCuadroDeDialogo extends DialogFragment {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
View v = getActivity().getLayoutInflater().inflate(R.layout.dialog_usuario, null);
builder.setView(v);
return builder.create();
}
}
Pending User
public class UsuarioPendiente extends AppCompatActivity {
Context context;
LinearLayout volver;
RecyclerView listaPendientes;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_usuario_pendiente);
context = UsuarioPendiente.this;
volver = (LinearLayout) findViewById(R.id.btnVolverPendientes);
listaPendientes = (RecyclerView) findViewById(R.id.listaPendientes);
listaPendientes.setLayoutManager(new LinearLayoutManager(context));
listaPendientes.setItemAnimator(new DefaultItemAnimator());
ControladorUsuario controlador = new ControladorUsuario(context);
final UsuarioAdapter adapter = new UsuarioAdapter(context, controlador.listaUsuarios());
listaPendientes.setAdapter(adapter);
volver.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
}
UserAdapter
public class UsuarioAdapter extends RecyclerView.Adapter<UsuarioHolder> implements Filterable {
Context c;
public ArrayList<Usuario> usuarios, listaFiltrada;
FiltroUsuarios filtro;
public UsuarioAdapter(Context ctx, ArrayList<Usuario> usuarios){
this.c=ctx;
this.usuarios=usuarios;
this.listaFiltrada=usuarios;
}
@Override
public UsuarioHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v= LayoutInflater.from(parent.getContext()).inflate(R.layout.item_lista_usuarios,null);
//HOLDER
UsuarioHolder holder=new UsuarioHolder(v);
return holder;
}
@Override
public void onBindViewHolder(UsuarioHolder holder, final int position) {
holder.nombre.setText(usuarios.get(position).getNombre());
holder.apellido.setText(usuarios.get(position).getApellido());
holder.bind(usuarios.get(position));
}
@Override
public int getItemCount() {
return usuarios.size();
}
@Override
public Filter getFilter() {
if (filtro==null){
filtro = new FiltroUsuarios(listaFiltrada, this);
}
return filtro;
}
}
UserHolder
public class UsuarioHolder extends RecyclerView.ViewHolder {
public TextView nombre, apellido;
public LinearLayout linearLayoutItem;
public UsuarioHolder(View itemView) {
super(itemView);
this.apellido = (TextView) itemView.findViewById(R.id.nombreUsuario);
this.nombre = (TextView) itemView.findViewById(R.id.apellidoUsuario);
linearLayoutItem = (LinearLayout) itemView.findViewById(R.id.linearLayoutItem);
}
public void bind(Usuario user) {
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
/* como lanzo el cuadro de dialogo correctamente aqui*/
}
});
}
dialog_user.xml