@igorpowers

Как сделать умножение числа из editTextr на другое число?

Привет, ребят, сори что так много хочу, только пока что обучаюсь программированию на Java. Вроде бы прошел курс в SoloLearn, но все равно как-то мутно. В общем сейчас пытаюсь сделать так, чтобы человек вводил в поле editText число грамм, выбирал из Spinner'а продукт и приложение подсчитывало количество калорий. Ну соотвественно я в коде указываю образно if(выбрано яблоко) {вывести на экран(editText*0,52)}. Вы не думайте что я прям ноль. Я делал условие, метод и так далее, но при нажатии на кнопку, FirstApp has stopped, крашило и всё..
вот код
package com.example.firstapp;

import androidx.annotation.RequiresApi;
import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;


public class MainActivity extends AppCompatActivity {

    EditText inputText;
    Button encBtn;

    public final String[] productsList = {"Яблоко","Картофель","Говядина","Апельсин"};

    @RequiresApi(api = Build.VERSION_CODES.M)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);


        ArrayAdapter<String> productsAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, productsList);
        productsAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        Spinner productsList = findViewById(R.id.spProducts);
        productsList.setPrompt("Выберите продукт");

        productsList.setAdapter(productsAdapter);

        encBtn = findViewById(R.id.encBtn);
        inputText = findViewById(R.id.inputText);

    }


    @Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        if (ev.getAction() == MotionEvent.ACTION_DOWN) {
            View v = getCurrentFocus();
            if (v instanceof EditText) {
                EditText edit = ((EditText) v);
                Rect outR = new Rect();
                edit.getGlobalVisibleRect(outR);
                boolean isKeyboardOpen = !outR.contains((int)ev.getRawX(), (int)ev.getRawY());
                System.out.print("Is Keyboard? " + isKeyboardOpen);
                if (isKeyboardOpen) {
                    System.out.print("Entro al IF");
                    edit.clearFocus();
                    InputMethodManager imm = (InputMethodManager) this.getSystemService(Context.INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(edit.getWindowToken(), 0);
                }

                edit.setCursorVisible(!isKeyboardOpen);


            }
        }
        return super.dispatchTouchEvent(ev);
    }
}
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Добрый день!
Для того, чтобы объективно ответить на ваш вопрос вы не предоставили ни сниппет кода, ни stacktrace. И это усложняет задачу, ибо непонятно с какой именно проблемой вы столкнулись и как ее побороть.
Вроде бы прошел курс в SoloLearn

Уж поверьте человеку, который игрался с этой программкой и "прошел" этот курс ради забавы, это абсолютно полный бред. Вы ничему из этого курса не научитесь. Если уж хотите изучить Java & Android из туториалов, то смотрите в сторону startandroid udemy javarush, платные курсы и др. Но скажу заранее, что в определенный момент вам в любом случае будет не хватать этих знаний и вам придется скачать книги и прочитать их.
Г. Шилдт - Полное руководство Java (10-е издание)
Java Head First и др.

Как и ответили мои коллеги - возможно, что вы столкнулись с проблемой приведения типов. А возможно, что у вас до этого и не доходит и выпадает другое исключение. Чтобы не быть голословным предоставьте ваш исходный код, а также стектрейс (лог ошибок).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
samodum
@samodum
Какой вопрос - такой и ответ
Тебе надо разобраться с типами. Ты String умножаешь на число, а так делать нельзя.
Почитай книжку по ОСНОВАМ языка программирования. В твоём случае, это Java.
Вот вам ещё одно доказательство против сраных курсов. Элементарным вещам научить не могут.
Где код? Где логи? На курсах не учили этому?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы