Method does not override method from its superclass

354
09 июня 2022, 15:40

Пытаюсь понять в чем ошибка и на что ругается Android Studio в переопределении метода интерфейса, от которого имплементируюсь в данном классе.

public class AddNoteActivity extends AppCompatActivity implements saveClickable{
    private EditText editTextTitle;
    private EditText editTextDescription;
    private Spinner spinnerDaysOfWeek;
    private RadioGroup radioGroupPriority;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_note);
        editTextTitle = findViewById(R.id.editTextTitle);
        editTextDescription = findViewById(R.id.editTextDescription);
        spinnerDaysOfWeek = findViewById(R.id.spinnerDaysOFWeek);
        radioGroupPriority = findViewById(R.id.radioGroupPriority);
    }
    @Override // в этом месте ругается Anroid Studio "Method does not override method from its superclass"
    public void onClickSaveNote(View view) {
        String title = editTextTitle.getText().toString().trim();
        String description = editTextDescription.getText().toString().trim();
        String dayOfWeek = spinnerDaysOfWeek.getSelectedItem().toString();
        int radioButtonId = radioGroupPriority.getCheckedRadioButtonId();
        RadioButton radioButton = findViewById(radioButtonId);
        int priority = Integer.parseInt(radioButton.getText().toString());
        Note note = new Note(title, description, dayOfWeek, priority);
        MainActivity.notes.add(note);
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
    }
}

Интерфейс от которого имплементируюсь:

package com.demo.notes;
public interface saveClickable {
    public void onClickSaveNote();
}

Спасибо!

Answer 1

Ругается потому что сигнатуры методов не совпадают - в интерфейсе нет параметра View. Сигнатура метода - это имя и типы параметров, при чём последовательность параметров тоже имеет значение.
Для переопределения/реализации метода необходимо объявить метод с тем же именем и набором параметров.

Если совпадает только имя - это называется перегрузкой и используется только для лучшего понимания того, что методы делают одно и тоже, но из разных входных данных.
Но технически перегруженные методы никак не связаны между собой.

READ ALSO
Применяется не тот класс CSS, который нужен

Применяется не тот класс CSS, который нужен

Не могу понять почему применяется внешнее правило CSS, a не внутреннее, <div class="Post_post__gI2Hu"> находится внутри <div class="Profile_content__3EemM">,...

349
Изменение переменной Flask

Изменение переменной Flask

Можно ли как то сделать так, чтобы при клике по кнопке на сайте менялась переменнаяПишу сайт через Flask на питоне

283
Как разделить footer, header и основу?

Как разделить footer, header и основу?

Кто в этом хорошо разбирается, подскажите как что сделать, хоть что-то из этого, с оставшимся (ну или поняв принцип работы), постараюсь сам...

363
Значение с html select в php переменную

Значение с html select в php переменную

есть страница на которой я обновляю информацию блока div (#updatediv) по нажатию клавиши(опустошаю и подгружаю php код с файла допустим updatephp)

268