Calcular notas automaticamente con addTextChangedListener(new TextWatcher()
Publicado por giuseppe (2 intervenciones) el 15/09/2019 03:31:21
Hola comunidad, quería pedirles el gran favor de que me puedan dar una solución al siguiente problema:
Necesito crear una aplicación que en el momento de ingresar una nota y su porcentaje me calcule automaticamente el promedio con la clase addTextChangedListener(new TextWatcher(){})
primeramente utilice un Seekbar para aparecer los campos de las notas y desaparecerlos, segun cual sea su posicion (del 1 al 10) para ello utilice el siguiente arreglo : final EditText[] notas = {nota1, nota2, nota3, nota4, nota5, nota6, nota7, nota8, nota9, nota10} de igual manera cree uno para el porcentaje;
para que a medida que se detecta la posición con la clase setOnSeekBarChangeListener mediante un for valla poniéndolos Visibles e invisibles..
:
de esta manera:
for (int x = 1; x <= i; x++) {
EditText nota = notas[x];
EditText porcentaje = porcentajes[x];
nota.setVisibility(View.VISIBLE);
porcentaje.setVisibility(View.VISIBLE);
}
Bueno mi problema radica en que necesito solo ocupar una clase abstracta de addTextChangedListener(new TextWatcher(){}) y que me detecte el campo que estoy llenando, lo único que se me ocurrió fue hacer el siguiente código pero esto al parecer me genera un bucle:
for (int x = 0; x <= 9; x++) {
final EditText nota = notas[x];
final EditText porcentaje = porcentajes[x];
//aca pueden ver que solo ocupo el vector para preguntar
nota.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
}
La idea de esto es poderme ahorrar la mayor cantidad de código posible , ya que si lo hago campo por campo, tendría que crear 10 clases abstractas para cada uno de los campos.
Alguien podría ayudarme a codear esto de tal forma que el identificador del campo sea dinámico y que al momento que estén todos los campos llenos (según estén visibles por la posición del Seekbar) , recién se calcule el promedio automáticamente
Necesito crear una aplicación que en el momento de ingresar una nota y su porcentaje me calcule automaticamente el promedio con la clase addTextChangedListener(new TextWatcher(){})
primeramente utilice un Seekbar para aparecer los campos de las notas y desaparecerlos, segun cual sea su posicion (del 1 al 10) para ello utilice el siguiente arreglo : final EditText[] notas = {nota1, nota2, nota3, nota4, nota5, nota6, nota7, nota8, nota9, nota10} de igual manera cree uno para el porcentaje;
para que a medida que se detecta la posición con la clase setOnSeekBarChangeListener mediante un for valla poniéndolos Visibles e invisibles..
:
de esta manera:
for (int x = 1; x <= i; x++) {
EditText nota = notas[x];
EditText porcentaje = porcentajes[x];
nota.setVisibility(View.VISIBLE);
porcentaje.setVisibility(View.VISIBLE);
}
Bueno mi problema radica en que necesito solo ocupar una clase abstracta de addTextChangedListener(new TextWatcher(){}) y que me detecte el campo que estoy llenando, lo único que se me ocurrió fue hacer el siguiente código pero esto al parecer me genera un bucle:
for (int x = 0; x <= 9; x++) {
final EditText nota = notas[x];
final EditText porcentaje = porcentajes[x];
//aca pueden ver que solo ocupo el vector para preguntar
nota.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
}
La idea de esto es poderme ahorrar la mayor cantidad de código posible , ya que si lo hago campo por campo, tendría que crear 10 clases abstractas para cada uno de los campos.
Alguien podría ayudarme a codear esto de tal forma que el identificador del campo sea dinámico y que al momento que estén todos los campos llenos (según estén visibles por la posición del Seekbar) , recién se calcule el promedio automáticamente
Valora esta pregunta


0