Problem with Listener's of EditTextBox, "hang up" and close the Layout in onCreate and onStart

0

I elaborated an application that when editing the text of an EditText activates the execution of a routine with calculations. It works without problem.

Create another routine, but now with 5 EditText, when modifying the text of any of them, a calculation routine is activated; here the problem:

When the application is executing onCreate and onStart, the default values of the 5 EditTextBox are loaded and then the application enters in repeated executions of the Calculation routine that "hangs up" and closes the Layout.

Any ideas or comments to avoid this?

Greetings.

   public class PotenciaBombaActivity extends AppCompatActivity {

//Declaracion de variables.
public Spinner sppDensidad, sppFlujo, sppAltura, sppGravedad, sppPotencia;
public ArrayAdapter<CharSequence> adaptadorDensidad, adaptadorFlujo, adaptadorAltura, adaptadorGravedad, adaptadorPotencia;
public ArrayAdapter<String> adaptadorClear;

public EditText ValPotencia, ValDensidad, ValFlujo, ValAltura, ValGravedad, ValEficienciaH, ValEficienciaM;

public RadioButton SrbtnPotencia,SrbtnDensidad,SrbtnFlujo,SrbtnAltura,SrbtnGravedad;

public int contadorEjecutar;

public Double ValDensidad01, ValFlujo01, ValAltura01, ValGravedad01, ValPotencia01,ValEficienciaH01,ValEficienciaM01;

public Double ValPotencia01ORG, ValDensidad01ORG, ValFlujo01ORG, ValAltura01ORG, ValGravedad01ORG, ValEficienciaH01ORG, ValEficienciaM01ORG;

public String UnidadPotenciaORG, UnidadDensidadORG, UnidadFlujoORG, UnidadAlturaORG, UnidadGravedadORG;

public Button btnCalcular01;



@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_potencia_bomba);




    //Se asigan en variables los valores de widgets utilizados.
    sppDensidad = (Spinner) findViewById(R.id.spinnerDensidad);
    sppFlujo = (Spinner) findViewById(R.id.spinnerFlujo);
    sppAltura = (Spinner) findViewById(R.id.spinnerAltura);
    sppGravedad = (Spinner) findViewById(R.id.spinnerGravedad);
    sppPotencia = (Spinner) findViewById(R.id.spinnerPotencia);

    ValDensidad = (EditText) findViewById(R.id.EdTxDensidad);
    ValFlujo = (EditText) findViewById(R.id.EdTxFlujo);
    ValAltura = (EditText) findViewById(R.id.EdTxAltura);
    ValGravedad = (EditText) findViewById(R.id.edTxGravedad);
    ValPotencia=(EditText) findViewById(R.id.EdTxPotencia);

    ValEficienciaH=(EditText) findViewById(R.id.EdTxEficienciaH);
    ValEficienciaM=(EditText) findViewById(R.id.EdTxEficienciaM);

    SrbtnPotencia=(RadioButton) findViewById(R.id.rbtnPotencia);
    SrbtnDensidad=(RadioButton) findViewById(R.id.rbtnDensidad);
    SrbtnFlujo=(RadioButton) findViewById(R.id.rbtnFlujo);
    SrbtnAltura=(RadioButton) findViewById(R.id.rbtnAltura);
    SrbtnGravedad=(RadioButton) findViewById(R.id.rbtnGravedad);






    ValPotencia01ORG=0.0;
    ValDensidad01ORG=1000.0;
    ValFlujo01ORG=1.0;
    ValAltura01ORG=40.0;
    ValGravedad01ORG=9.8;
    ValEficienciaH01ORG=90.0;
    ValEficienciaM01ORG=80.0;




    //Forma 2 de asignar el Listener a los spinners.
    sppDensidad.setOnItemSelectedListener(myItemSelectedListener);
    sppFlujo.setOnItemSelectedListener(myItemSelectedListener);
    sppAltura.setOnItemSelectedListener(myItemSelectedListener);
    sppGravedad.setOnItemSelectedListener(myItemSelectedListener);
    sppPotencia.setOnItemSelectedListener(myItemSelectedListener);


    //Programacion para generar el adapter de los spinners y poder asignar el estilo <style name="LetraSpinners">
    adaptadorPotencia=ArrayAdapter.createFromResource(this,R.array.listMagnitudPotencia, R.layout.spinner_view_dropdown_gmm);
    adaptadorPotencia.setDropDownViewResource(R.layout.spinner_view_dropdown_gmm);
    sppPotencia.setAdapter(adaptadorPotencia);

    adaptadorDensidad=ArrayAdapter.createFromResource(this,R.array.listMagnitudDensidad, R.layout.spinner_view_dropdown_gmm);
    adaptadorDensidad.setDropDownViewResource(R.layout.spinner_view_dropdown_gmm);
    sppDensidad.setAdapter(adaptadorDensidad);

    adaptadorFlujo=ArrayAdapter.createFromResource(this,R.array.listMagnitudFlujoVolumetrico, R.layout.spinner_view_dropdown_gmm);
    adaptadorFlujo.setDropDownViewResource(R.layout.spinner_view_dropdown_gmm);
    sppFlujo.setAdapter(adaptadorFlujo);

    adaptadorAltura=ArrayAdapter.createFromResource(this,R.array.listMagnitudLongitud, R.layout.spinner_view_dropdown_gmm);
    adaptadorAltura.setDropDownViewResource(R.layout.spinner_view_dropdown_gmm);
    sppAltura.setAdapter(adaptadorAltura);

    adaptadorGravedad=ArrayAdapter.createFromResource(this,R.array.listMagnitudAceleracion, R.layout.spinner_view_dropdown_gmm);
    adaptadorGravedad.setDropDownViewResource(R.layout.spinner_view_dropdown_gmm);
    sppGravedad.setAdapter(adaptadorGravedad);



    //Inicia programacion del boton para ejecutar01.
    Button btnEjecutar01=(Button) findViewById(R.id.btnCalcular01);
    btnEjecutar01.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {

               //Toast.makeText(getApplicationContext(),"click btnCalcular01." ,Toast.LENGTH_SHORT).show();

               Ejecutar();

           }
        }
    );
    //Termina programacion del boton para ejecutar.

    //Inicia programacion del boton para ejecutar01.
    Button btnEjecutar02=(Button) findViewById(R.id.btnCalcular02);
    btnEjecutar02.setOnClickListener(new View.OnClickListener() {
           @Override
           public void onClick(View v) {

               //Toast.makeText(getApplicationContext(),"click btnCalcular02." ,Toast.LENGTH_SHORT).show();

               Ejecutar();

           }
       }
    );
    //Termina programacion del boton para ejecutar.



}  // Termina    protected void onCreate(Bundle savedInstanceState)







@Override
public void onStart(){
    super.onStart();
    //Nuestro código a ejecutar en este momento
    //Toast.makeText(getApplicationContext(), "onStart", Toast.LENGTH_SHORT).show();

    try {
        // Inicia, se establece en el Spinner el item numero 0 con texto "Aceleración"
        sppPotencia.setSelection(1);  // kiloWatt
        sppDensidad.setSelection(5);  // kg/cm3
        sppFlujo.setSelection(36);  // m3/min
        sppAltura.setSelection(4);  // m
        sppGravedad.setSelection(6);  // m/seg2


        PotenciaBombaActivity.this.ValDensidad.setText(FormatNumericGMM(Double.parseDouble("1000")));
        PotenciaBombaActivity.this.ValFlujo.setText(FormatNumericGMM(Double.parseDouble("1")));
        PotenciaBombaActivity.this.ValAltura.setText(FormatNumericGMM(Double.parseDouble("40")));
        PotenciaBombaActivity.this.ValGravedad.setText(FormatNumericGMM(Double.parseDouble("9.8")));
        PotenciaBombaActivity.this.ValEficienciaH.setText(FormatNumericGMM(Double.parseDouble("90")));
        PotenciaBombaActivity.this.ValEficienciaM.setText(FormatNumericGMM(Double.parseDouble("80")));
        // Termina, se establece en el Spinner el item numero 0 con texto "Aceleración"


        Config_rbtnDatos(2131558513);  //El numero corresponde al checkedId del radioButton de la variable Potencia.





        //Habilita el Listener que detecta modificacion de los RadioButons dentro del RadioGroup.
        RadioGroup radioGroup = (RadioGroup) findViewById(R.id.RadioGroup1);
        radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                //La siguiente linea identifoca el numero checkedId de cada RadioButton.
                //Toast.makeText(getApplicationContext(), "RadioButton:" + checkedId , Toast.LENGTH_SHORT).show();

        Config_rbtnDatos(checkedId);

            }
        });


        //habilita los Listener de los EdTxBox de Datos.
       Config_ListenerEdTxBox_Potencia();
        Config_ListenerEdTxBox_Densidad();
        Config_ListenerEdTxBox_Flujo();
        Config_ListenerEdTxBox_Altura();
        Config_ListenerEdTxBox_Gravedad();
        Config_ListenerEdTxBox_EficienciaH();
        Config_ListenerEdTxBox_EficienciaM();

        //Test();





    }    //Termina Try

    catch (Exception excepcion) {

       Toast.makeText(getApplicationContext(), "Excepcion en onstart():\n" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }


}   // Termina    public void onStart.







//Funcion Config_ListenerEdTxBox()
//Configura el Listener para el evento de modificacion del texto en el EdTxBox.
//Queda sin uso derivado de que genera que la aplicaion aborte antes de iniciar su uso.
//Los TRY no detectan la excepcion.

public void Config_ListenerEdTxBox_Potencia () {

    try {

        ValPotencia.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangePotencia" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_Potencia():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}

public void Config_ListenerEdTxBox_Densidad () {

    try {

        ValDensidad.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangeDensidad" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_Densidad():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}


public void Config_ListenerEdTxBox_Flujo () {

    try {

        ValFlujo.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangeFlujo" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_Flujo():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}

public void Config_ListenerEdTxBox_Altura () {

    try {

        ValAltura.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangeAltura" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_Altura():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}

public void Config_ListenerEdTxBox_Gravedad () {

    try {

        ValGravedad.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangeGravedad" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_Gravedad():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}

public void Config_ListenerEdTxBox_EficienciaH () {

    try {

        ValEficienciaH.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "ChangeEficienciaH" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_EficienciaH():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}


public void Config_ListenerEdTxBox_EficienciaM () {

    try {

        ValEficienciaM.addTextChangedListener(new TextWatcher() {
            @Override
            public void afterTextChanged(Editable s) {

                // you can call or do what you want with your EditText here
                Ejecutar();
                Toast.makeText(getApplicationContext(), "EficienciaM" , Toast.LENGTH_SHORT).show();

            }
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
            }
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
            }
        });
    }
    catch (Exception excepcion) {

        Toast.makeText(getApplicationContext(), "Excepcion en Config_ListenerEdTxBox_EficienciaM():" + excepcion.toString() , Toast.LENGTH_SHORT).show();
        //return (excepcion.toString());
    }

}
    
asked by gerardo2m 07.09.2017 в 18:56
source

0 answers