Comunicacion entre fragment y su activity contenedoras

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Comunicacion entre fragment y su activity contenedoras

Fernando codigo kreativo


Hola, 
os comento mi problema por si alguien me puede ayudar.

Tengo un activity que contiene 2 linear layout y un bottomNavigation.
el bottomNavigation contiene 5 menus con sus fragment correspondientes.

Y Dentro de algunos fragment tengo un recyclerView.

Al hacer click en el recycler quiero mostrar el linear que tengo en el activity, pero me dice que no lo encuentra.
Lo muestro en el evento Click  del fragment,

¿Donde lo deberia poner?

ESTE ES EL ACTIVITY.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
// fjg


View vista = inflater.inflate(R.layout.fragment_favoritos, container, false);
recyclerRadiosRecientes = vista.findViewById(R.id.recyclerFragmentRecientes);
recyclerRadiosRecientes.setLayoutManager(new LinearLayoutManager(getContext()));
listaRadios = gestorRadio.getArrayLisRadiosAll();
layoutPlay= (LinearLayoutCompat) vista.findViewById(R.id.LayoutPlay);
adaptadorRecyclerRadios adapter = new adaptadorRecyclerRadios(listaRadios);
adapter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
Utilidades.ShowToast(getContext(),"Seleccionado en fragment Favoritos.java:" + listaRadios.get(recyclerRadiosRecientes.getChildAdapterPosition(view)).getRadio());
Utilidades.IS_VISIBLE_BARRA_PLAY= true;
//layoutPlay.setVisibility(layoutPlay.VISIBLE); // aqui es donde me da el error.

}catch(Exception e){
Utilidades.ShowToast(getContext(),e.getMessage());
}
}
});

recyclerRadiosRecientes.setAdapter(adapter);

//Utilidades.MostrarPanelPlay2(layoutPlay);


return vista;
}

gracias!!

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/2dca35a3-81cd-49ab-84b3-5860e5bd5f04%40googlegroups.com.
Reply | Threaded
Open this post in threaded view
|

Re: Comunicacion entre fragment y su activity contenedoras

Christian Gurdian
No te entiendo bien la pregunta pero lo que entiendo es que quieres generar un evento click en tu lista en tu recyclerFragment, si es así esta en un error, en ves de tenerlo en el principal debes de crear el evento desde la lista de
adaptadorRecyclerRadios, tengo un ejemplo:

Yo generalmente utilizo androidx.cardview.widget.CardView así el ejemplo esta basado en ello pero es el mismo camino no importa el componente que valla a utilizar.

public class ListaEjecutorListAdacter extends RecyclerView.Adapter<ListaEjecutorListAdacter.ViewHolder> {

private int ItemLayout = R.layout.intern_list_row;
private java.util.List<ListaEjecutadas> List;
private Application application;

public ListaEjecutorListAdacter(Application application) {
this.application = application;
}

public void setListDatos(List<ListaEjecutadas> list) {
List = list;
}

static class ViewHolder extends RecyclerView.ViewHolder {
private TextView data1, data2, data3, data4, data5;
private CardView Card;

public ViewHolder(@NonNull View itemView, Application application) {
super(itemView);
data1 = itemView.findViewById(R.id.ViewCedula);
data2 = itemView.findViewById(R.id.ViewNombre);
data3 = itemView.findViewById(R.id.ViewFecha1);
data4 = itemView.findViewById(R.id.ViewFecha2);
data5 = itemView.findViewById(R.id.ViewAuditoria);
Card = itemView.findViewById(R.id.cardItemsAuditoria);

Card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//Evento de la aplicación
}
})
;

}
}

@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.
from(parent.getContext()).inflate(ItemLayout, parent, false);
ViewHolder myViewHolder = new ViewHolder(view, application);
return myViewHolder;
}

@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
holder.
data1.setText(String.valueOf(List.get(position).getiD_Traslado()));
holder.data2.setText(List.get(position).getSucursal());
holder.data3.setText(List.get(position).getIvtfr());
holder.data4.setText(List.get(position).getObservacion());
holder.data5.setText(List.get(position).getUsuario());
}

@Override
public int getItemCount() {
return List == null ? 0 : List.size();
}

Espero que te sirva


El mar., 26 may. 2020 a las 22:46, Fernando codigo kreativo (<[hidden email]>) escribió:


Hola, 
os comento mi problema por si alguien me puede ayudar.

Tengo un activity que contiene 2 linear layout y un bottomNavigation.
el bottomNavigation contiene 5 menus con sus fragment correspondientes.

Y Dentro de algunos fragment tengo un recyclerView.

Al hacer click en el recycler quiero mostrar el linear que tengo en el activity, pero me dice que no lo encuentra.
Lo muestro en el evento Click  del fragment,

¿Donde lo deberia poner?

ESTE ES EL ACTIVITY.

public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
// fjg


View vista = inflater.inflate(R.layout.fragment_favoritos, container, false);
recyclerRadiosRecientes = vista.findViewById(R.id.recyclerFragmentRecientes);
recyclerRadiosRecientes.setLayoutManager(new LinearLayoutManager(getContext()));
listaRadios = gestorRadio.getArrayLisRadiosAll();
layoutPlay= (LinearLayoutCompat) vista.findViewById(R.id.LayoutPlay);
adaptadorRecyclerRadios adapter = new adaptadorRecyclerRadios(listaRadios);
adapter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
try {
Utilidades.ShowToast(getContext(),"Seleccionado en fragment Favoritos.java:" + listaRadios.get(recyclerRadiosRecientes.getChildAdapterPosition(view)).getRadio());
Utilidades.IS_VISIBLE_BARRA_PLAY= true;
//layoutPlay.setVisibility(layoutPlay.VISIBLE); // aqui es donde me da el error.

}catch(Exception e){
Utilidades.ShowToast(getContext(),e.getMessage());
}
}
});

recyclerRadiosRecientes.setAdapter(adapter);

//Utilidades.MostrarPanelPlay2(layoutPlay);


return vista;
}

gracias!!

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/2dca35a3-81cd-49ab-84b3-5860e5bd5f04%40googlegroups.com.


--
Gracias, christian

--
Para participar es necesario que leas detenidamente las normas del grupo: https://goo.gl/xeTRQm
---
Has recibido este mensaje porque estás suscrito al grupo "desarrolladores-android" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a [hidden email].
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/desarrolladores-android/CAKYjjB3vXjPtDGbt-oSU8NKnxyFkzcFR8Xz4%3DhNfvk8qVT0A6w%40mail.gmail.com.