onOptionsItemsSelected не может быть переопределен и не используется?

#java #android #android-studio #menuitem

#java #Android #android-studio #menuitem

Вопрос:

Итак, я часами искал в Интернете и не могу найти решение. Похоже, у меня возникли две проблемы с этим кодом, первая из которых — @Override для onOptionsItemsSelected (метод не переопределяет метод из его суперкласса), а вторая — сам onOptionsItemsSelected . onOptionsItemsSelected сообщает мне, что метод никогда не используется, и я подумал, что это может быть причиной проблемы с @Override. Я просто не уверен, что именно я упускаю из виду. Я предоставил java-код ниже, если требуется xml-код, дайте мне знать, и я опубликую его как можно скорее. Заранее спасибо.

 package com.example.main_navigation;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;

import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class WalletActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_wallet);
    }

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.actionbar_menu, menu);
        return true;
    }
    @Override  ///First issue is here and 2nd issue is right below this line
    protected boolean onOptionsItemsSelected(final MenuItem item) {

        final int id = item.getItemId();
        if (id == R.id.action_custom_button) {
            startActivity(new Intent(getApplicationContext(), NavigationActivity.class));
            overridePendingTransition(0, 0);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

}
 

Ответ №1:

Это onOptionsItemSelected — Item , а не Items .

Ответ №2:

Для первой проблемы: измените область действия метода с protected на public

Что касается второй проблемы: onOptionsItemsSelected tells me the method is never used это предупреждение от Android Studio, потому что этот метод не вызывается, поэтому он бесполезен

Ответ №3:

Попробуйте следующий исходный код вместо onOptionsItemsSelected class.

 @Override  ///First issue is here and 2nd issue is right below this line
protected boolean onOptionsItemsSelected(final MenuItem item) {

    final int id = item.getItemId();
    if (id == R.id.action_custom_button) {
        startActivity(new Intent(getApplicationContext(), NavigationActivity.class));
        overridePendingTransition(0, 0);
        return true;
    }
    return super.onOptionsItemSelected(item);
}