¿Cómo podría refactorizar este fragmento de código para conseguir el mismo resultado?

Guante blanco :

Estoy trabajando en una aplicación para la escuela. Yo estaba buscando a través del código y encontré esta cosa que hice:

if (answerTxt1.getText().toString().matches("")) {
        infoStatus.setText("Answer1 cannot be empty!");
        return;
   } else if (answerTxt2.getText().toString().matches("")){
        infoStatus.setText("Answer2 cannot be empty!");
        return;
   } else if (answerTxt3.getText().toString().matches("")){
        infoStatus.setText("Answer3 cannot be empty!");
        return;
   } else if (answerTxt4.getText().toString().matches("")){
       infoStatus.setText("Answer4 cannot be empty!");
       return;
    }

La idea detrás de esta 'lógica' es que hay 4 ranuras para escribir en la aplicación, pero ninguno no puede estar vacía. Si uno de ellos es vacía, una Textview llamado infoStatus mostrará el mensaje sobre la excepción ocurridos.

Sé que esto puede tener un refactor y se puede hacer en menos líneas, pero no estoy seguro de cómo. Hasta ahora, mi idea era la siguiente:

if (answerTxt1.getText().toString().matches("") 
             || answerTxt2.getText().toString().matches("")
             || answerTxt3.getText().toString().matches("")
             || answerTxt4.getText().toString().matches("")) {

       infoStatus.setText("One of the answers is empty!");
       return;
    }

pero no voy a hacer llegar el mensaje específico para el usuario de los cuales answerTxt # está vacía.

Arvind Kumar Avinash:

Puede hacerlo como

TextView[] textViews = {answerTxt1, answerTxt2, answerTxt3, answerTxt1};
for(int i=0; i<textViews.length; i++){
    if(textViews[i].getText().toString().isEmpty()){
        infoStatus.setText("Answer"+ (i+1) + " cannot be empty!");
        break;
    }
}

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=394232&siteId=1
Recomendado
Clasificación