Привет, ребят, сори что так много хочу, только пока что обучаюсь программированию на 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);
}
}