Android - Problemas al Limpiar en los Fragment

 
Vista:
sin imagen de perfil
Val: 40
Ha aumentado su posición en 2 puestos en Android (en relación al último mes)
Gráfica de Android

Problemas al Limpiar en los Fragment

Publicado por Hector (35 intervenciones) el 20/03/2024 14:01:00
Muy buenas les comento que estoy realizando las correspondientes mejoras a mi primera app para android studio, en el cual tengo cuatro fragment y lo que quiero es realizar que limpie todos los fragment desde el boton limpiar del primer fragment y este es el proceso que se realiza, al presionar en Limpiar:

private void Limpiardatos (){
Frmpresupuesto actividad = (Frmpresupuesto) requireActivity();
actividad.setLimpiarDatos();
txtpresupuesto1.setText("");
txtnombre4.setText("");
txtrut4.setText("");
txtfecha1.setText("");
txtnombre5.setText("");
txtsiniestro.setText("");
txtnombre6.setText("");
txtfono4.setText("");
txttercero.setText("");
txtfonotercero.setText("");
txtmarca2.setText("");
txtmodelo1.setText("");
txtano.setText("");
txtpatente.setText("");
txtchasis.setText("");
a.setText("");
b.setText("");
c.setText("");
d.setText("");
e.setText("");
f.setText("");
tbldatos1.removeAllViews();
sppatente.setAdapter(null);
ArrayList<String> seleccion4 = new ArrayList<>();
seleccion4.add("Seleccione patente");
ArrayAdapter<CharSequence> adaptador4 = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion4);
sppatente.setAdapter(adaptador4);
spcompania.setAdapter(null);
ArrayList<String> seleccion = new ArrayList<>();
seleccion.add("Seleccione Cliente");
ArrayAdapter<CharSequence> adaptador = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion);
spcompania.setAdapter(adaptador);
spliquidador.setAdapter(null);
ArrayList<String> seleccion1 = new ArrayList<>();
seleccion1.add("Seleccione Liquidador");
ArrayAdapter<CharSequence> adaptador1 = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion1);
spliquidador.setAdapter(adaptador1);
spmarca.setAdapter(null);
ArrayList<String> seleccion2 = new ArrayList<>();
seleccion2.add("Seleccione Marca");
ArrayAdapter<CharSequence> adaptador2 = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion2);
spmarca.setAdapter(adaptador2);
spmodelo.setAdapter(null);
ArrayList<String> seleccion3 = new ArrayList<>();
seleccion3.add("Seleccione Modelo");
ArrayAdapter<CharSequence> adaptador3 = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion3);
spmodelo.setAdapter(adaptador3);
shouldLoadSpinner1 = false;
btn_modificar.setEnabled(false);
btn_eliminar.setEnabled(false);
btn_grabar.setEnabled(true);
llenarSpinner();
}
aquí realiza el proceso de limpiar los datos del primer fragment y posteriormente se comunica con el activity:

public void setLimpiarDatos() {
// Obtiene el segundo fragmento directamente a través de su posición en el ViewPager
Fragment fragment = pagerAdapter.getItem(1);
if (fragment instanceof mano) {
mano segundoFragmento = (mano) fragment;
// Llama al método de limpieza de datos en el fragmento correcto
segundoFragmento.actualizarLimpiarDatos();
}
}
aquí es que me di cuenta de un problema, no es que me arroje error sino que me que di cuenta con el Breakpoint que segundoFragmento que todos los elementos del segundo fragment llamado mano estan null, es decir todos los editext, buttons, tabledlayout, spinner es decir todo = null, por ende al momento de que se dirija al actualizarLimpiarDatos del segundo fragment no los limpia por dicho error, por ende realice este proceso de esta manera:

public void actualizarLimpiarDatos() {
// Realiza las acciones necesarias con el valor de limpiarDatos
if (tbldatos != null) {
tbldatos.removeAllViews();
}
if (tbldatos1 != null) {
tbldatos1.removeAllViews();
}
cmdingresar.setEnabled(true);
cmdmodificar.setEnabled(false);
btn_eliminar1.setEnabled(false);

if (txtitem2 != null){
txtitem2.setText("1");
}
if (txtdetalle != null){
txtdetalle.setText("");
}
if (txtvalor != null){
txtvalor.setText("");
}
if (txtvalor1 != null){
txtvalor1.setText("");
}
if (spid1 != null){
spid1.setAdapter(null);
ArrayList<String> seleccion = new ArrayList<>();
seleccion.add("Seleccione Fila");
ArrayAdapter<CharSequence> adaptador = new ArrayAdapter (getActivity(), android.R.layout.simple_dropdown_item_1line, seleccion);
spid1.setAdapter(adaptador);
}
shouldLoadSpinner1 = false;
//txtdetalle.requestFocus();
}
no se porque cuando llamo desde el Activity, los datos del segundo fragment se encuentran en null y no están vacíos poseen datos, ese en si es la duda que tengo y llevo mas de una semana tratando de solucionarlo y como ven no he podido, ojala que me puedan asesorar, si necesitan algo más me informan y desde ya muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder