Как вызвать функцию кнопкой. Android
Ситуация такая. Есть MainActivity, в нем есть метод onCreate и process(который вызывается кнопкой enter). Я хочу просто вызвать метод sum из MainActivity. Когда я вызываю, то вылетает, и ошибка nullPoinerExeption и типа этого Could not execute method for android:onClickвведите сюда код
package com.example.myapplication111336;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
public EditText edit1;
public TextView result;
public static int sum(int a, int b) { return a + b; }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = findViewById(R.id.edit1);
result = findViewById(R.id.result);
}
public void process(View view) { result.setText(sum(3, 4)); }
}
Ответы (2 шт):
Зачем вам process(View view)? У вас что, обращение к View есть? И проверьте правильность написания имени виджета в xml и Mainactivity. Также ошибка в том, что получаете результат в int, и хотите его засунуть в Text.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit1 = findViewById(R.id.edit1);
result = findViewById(R.id.result);
result.setText(Integer.toString(sum(3, 4)));
}
Чтобы вызвать функцию нажатием на кнопку, нужно было во-первых сделать слушатель в MainActivity ВОТ ТАК.
findViewById(R.id.enter).setOnClickListener(view -> {
Logic.replace();
result.setText(String.valueOf(Logic.answer));
});
В фигурных скобках можно указать даже несколько требуемых функций.
Во-вторых (НЕ вдаваясь в мой настоящий код), было необходимо вписать .getText без которого вся программа ломалась.
public static MainActivity MA = new MainActivity();
public static void GetTS() {
choice = Integer.parseInt(MA.edit5.getText().toString())-1;
index[3] = Integer.parseInt(MA.edit6.getText().toString());
...
Так я смог в другом файле, в другом классе, определить значения переменных так как мне надо.
