Как получить значения EditText из условных операторов - PullRequest
0 голосов
/ 05 января 2020

Я не могу получить данные в коде. Если пользователь вводит число в диапазоне, как указано в операторах if else, он должен вернуть целочисленное значение.

Пример: если я введу 46 в et1, тогда я должен получить 6 в n1 при нажатии кнопки bt1.

parseInt() только извлекает введенные значения, пожалуйста помогите, спасибо.

public class mt11 extends AppCompatActivity {

    private EditText et1, et2;
    private Button bt1;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_mt11);

        et1 = findViewById(R.id.mt1011);
       // et2 = (EditText) findViewById(R.id.mt1012);

        bt1 = (Button) findViewById(R.id.mt1sgpa1);

        bt1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                int num = 0;
                int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;

                if (num >= 0 && num <= 41) {
                    num = F ;
                }
                else if (num >= 42 && num <= 44) {
                    num = E;
                }
                else if (num >= 45 && num <= 59) {
                    num = D;
                }
                else if (num >= 60 && num <= 69) {
                    num = C;
                }
                else if (num >= 70 && num <= 79) {
                    num = B;
                }
                else if (num >= 80 && num <= 89) {
                    num = A;
                }
                else {
                    num = S;
                }



                int n1 = Integer.valueOf(et1.getText().charAt(num));
               // int n2 = Integer.parseInt(et2.getText().toString());

                AlertDialog alertDialog = new AlertDialog.Builder(mt11.this).create();
                alertDialog.setTitle("New Semester");
                alertDialog.setMessage("Your Grade is : " + String.valueOf(n1));
                        //Showing Alert Message
                        alertDialog.show();
            }
        });
    }
}

Ответы [ 2 ]

0 голосов
/ 05 января 2020

Вы можете создавать как метод и вызывать там, где захотите, следующим образом.

publi c class mt11 extends AppCompatActivity {

private EditText et1, et2;
private Button bt1;

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_mt11);

    et1 = findViewById(R.id.mt1011);
   // et2 = (EditText) findViewById(R.id.mt1012);

    bt1 = (Button) findViewById(R.id.mt1sgpa1);

    bt1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        showGrade(calculateGrage(et1.getText().toString()));
        }
    });
}

private String calculateGrage(String range) {
    int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;
    int num = 0, result = 0;
    try {
        num = Integer.parseInt(range);
    } catch (NumberFormatException nfe) {
        //Not in correct format
    }
   if(num == 0 || num < 0) {
     result = F;
   } else {
       if (num <= 41) {
           result = F;
       } else if (num <= 44) {
           result = E;
       } else if (num <= 59) {
           result = D;
       } else if (num <= 69) {
           result = C;
       } else if (num <= 79) {
           result = B;
       } else if (num <= 89) {
           result = A;
       } else {
           result = S;
       }
   }
    return String.valueOf(result);
}

private void showGrade(String grade) {
    AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    alertDialog.setTitle("New Semester");
    alertDialog.setMessage("Your Grade is : " + grade);
    //Showing Alert Message
    alertDialog.show();
}

}

0 голосов
/ 05 января 2020

Измените свой код на это:

int num = 0;
try {
    num = Integer.parseInt(et1.getText().toString());
} catch (NumberFormatException nfe) {
    //Not in correct format
}

int grade = 0;
int S = 10, A = 9, B = 8, C = 7, D = 6, E = 4, F =0;

if (num >= 0 && num <= 41) {
    grade = F ;
}
else if (num >= 42 && num <= 44) {
    grade = E;
}
else if (num >= 45 && num <= 59) {
    grade = D;
}
else if (num >= 60 && num <= 69) {
    grade = C;
}
else if (num >= 70 && num <= 79) {
    grade = B;
}
else if (num >= 80 && num <= 89) {
    grade = A;
}
else {
    grade = S;
}

, а затем

alertDialog.setMessage("Your Grade is : " + String.valueOf(grade));

Я думаю, вы получите то, что вы хотите.

...