Мой вопрос: почему мой введенный текст в текстовом редакторе не будет отображаться в другом текстовом представлении при нажатии кнопки? - PullRequest
0 голосов
/ 28 января 2019

Итак, я преобразовал входные данные из editTexts в целые числа, чтобы я мог использовать их в уравнениях в операторе if else, а затем преобразовал результат математического анализа в строку, чтобы я мог распечатать результат.Я пытаюсь сделать приложение, чтобы помочь с физикой.Я новичокСкажите, если вам нужна дополнительная информация, например, XML-файл или файл манифеста.

speed.java

    EditText editText1=findViewById(R.id.editText1);
            EditText editText2=findViewById(R.id.editText2);
            EditText editText3=findViewById(R.id.editText3);
            Button solve=findViewById(R.id.solve);
            final String veloInput=editText1.getText().toString();
            final String disInput = editText2.getText().toString();
            final String timInput = editText3.getText().toString();
            final TextView textView=findViewById(R.id.textView5);
            solve.setOnClickListener(new View.OnClickListener() {
                public void onClick(View v){
                    if (veloInput.equals("v")) {
                        int distInput = Integer.parseInt(disInput);
                        int timeInput = Integer.parseInt(timInput);
                        int value = distInput / timeInput;
                        String strValue = Integer.toString(value);
                        textView.setText(strValue);
                    }

Я хочу, чтобы он напечатал строку strValue в textView, но ничего не происходиткогда я нажимаю кнопку «решить».

1 Ответ

0 голосов
/ 28 января 2019

Когда вы звоните editText1.getText().toString(), вы получите строку из editText1 в то время .Если пользователь изменяет значение текстового поля, ни одна из ваших переменных не будет отражать это изменение.Попробуйте переместить ваши вызовы getText в функцию onClick:

EditText editText1=findViewById(R.id.editText1);
EditText editText2=findViewById(R.id.editText2);
EditText editText3=findViewById(R.id.editText3);
Button solve=findViewById(R.id.solve);
final TextView textView=findViewById(R.id.textView5);
solve.setOnClickListener(new View.OnClickListener() {
    public void onClick(View v){
        final String veloInput = editText1.getText().toString();
        final String disInput = editText2.getText().toString();
        final String timInput = editText3.getText().toString();
        if (veloInput.equals("v")) {
            int distInput = Integer.parseInt(disInput);
            int timeInput = Integer.parseInt(timInput);
            int value = distInput / timeInput;
            String strValue = Integer.toString(value);
            textView.setText(strValue);
        }
    }
});
...