#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);
}