Galera boa noite (agora são 23hrs), eu to procurando no google faz um bom tempo, cerca de 1 mes já, já perguntei em grupos de facebook, whatsapp, porém sem respostas, então decidi vim até aqui para poder perguntar a vocês, é o seguinte, eu tenho um app e queria poder clicar nesse botãozinho de + (Mais) nele ai, porém n consigo ativar um evento de clique em item especifico dentro do recycleview, alguem poderia me dar uma luz?
Click em botão dentro do recicleview (item especifico)
6 Respostas
Bom, pra vc ter essa tela toda feita, eu acredito que vc tenha um Adapter do seu RecyclerView.
Então la nó seu adapter, no OnBindViewHolder vc vai declarar o seu botão e depois vai fazer o seguinte: (faça a adaptação ao seu código, tô te passando bem resumido)
private List<PessoaModel> mPessoa;
@Override
public void onBindViewHolder(@NonNull final PessoaAdapter.LojaViewHolder holder, final int position) {
final PessoaModel pessoa = mPessoa.get(position);
holder.botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
System.out.println(pessoa.getId);
//agora toda vez que vc clicar em um botão
// em qualquer posição. O seu app vai retornar
// o id daquela pessoa, exemplo:
//vc clicou em ALJAVA DE EHLONNA...
//o app vai retornar "800" (que é o id específico daquele item)
//que provavelmente esteja no banco de dados.
});
}
Já tentei desse jeito mno, ele trava e não funciona… ta tenso fzer isso real msm
mostra seu codigo
Este é o Adapter do RecycleView
public class Adapter extends RecyclerView.Adapter<Adapter.myViewHolder> {
private List<listadeitensmagicos> listadeitensmagicos;
public Adapter(List<listadeitensmagicos> listamagica) {
this.listadeitensmagicos = listamagica;
}
@NonNull
@Override
public myViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View itemlista = LayoutInflater.from(parent.getContext())
.inflate(R.layout.itensmagicos,parent,false);
return new myViewHolder(itemlista);
}
@Override
public void onBindViewHolder(@NonNull final myViewHolder holder, final int position) {
final listadeitensmagicos lm = listadeitensmagicos.get(position);
holder.texto.setText(lm.getNome());
holder.preco.setText("preço: " + lm.getPreco());
}
@Override
public int getItemCount() {
return listadeitensmagicos.size();
}
public class myViewHolder extends RecyclerView.ViewHolder{
TextView texto;
TextView preco;
ImageView mais;
ImageView menos;
public myViewHolder(@NonNull View itemView) {
super(itemView);
texto = itemView.findViewById(R.id.texto);
preco = itemView.findViewById(R.id.preco);
mais = itemView.findViewById(R.id.adicionar);
menos = itemView.findViewById(R.id.remover);
}
}
}
Aqui é o ClickListener do RecycleView (tentei usar mas sem sucesso)
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
private OnItemClickListener mListener;
GestureDetector mGestureDetector;
@Override
public boolean onInterceptTouchEvent(RecyclerView rv, MotionEvent e) {
View childView = rv.findChildViewUnder(e.getX(), e.getY());
if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
mListener.onItemClick(childView, rv.getChildAdapterPosition(childView));
return true;
}
return false;
}
@Override
public void onTouchEvent(RecyclerView rv, MotionEvent e) {
}
@Override
public void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept) {
}
public interface OnItemClickListener extends AdapterView.OnItemClickListener {
public void onItemClick(View view, int position);
public void onLongItemClick(View view, int position);
}
public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
mListener = listener;
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && mListener != null) {
mListener.onLongItemClick(child, recyclerView.getChildAdapterPosition(child));
}
}
});
}
}
Só pra explicar a ideia, eu quero poder clicar ali e enviar a informação para um texview fora do recycleview
Tira esse RecyclerItemClickListener.
cadê o código do click aqui?
Criado 3 de agosto de 2020
Ultima resposta 5 de ago. de 2020
Respostas 6
Participantes 2
Alura O que é Firebase? Para que serve, principais característica e um Guia dessa ferramenta Google O poder do Firebase! Saiba como a plataforma pode impulsionar suas aplicações web e mobile, descobrindo tudo neste artigo completo.
Casa do Codigo Back-end Java: Microsservicos, Spring Boot e Kubernetes Por Eduardo Felipe Zambom Santana — Casa do Codigo
