findViewById nie muszą być uruchamiane na onOptionsItemSelected w celu uzyskania widoku elementu działania.
należy jednak pamiętać, że czasami elementy akcji znajdują się w menu przepełnienia, więc zamiast tego można uzyskać wartość null.
więc, jak możesz to zrobić?
oto przykładowy kod:
public boolean onCreateOptionsMenu(final Menu menu) {
getSupportMenuInflater().inflate(R.menu.main, menu);
new Handler().post(new Runnable() {
@Override
public void run() {
final View menuItemView = findViewById(R.id.menu_action_item);
...
ten został przetestowany przy użyciu biblioteki ActionBarSherlock, na Androidzie 4.1.2 i Android 2.3.5.
Kolejną alternatywą jest szersze zastosowanie, używane na showcaseView library, here.
Nie to nie działa Próbowałem tego przede wszystkim i po prostu zwraca zerowy wskaźnik. Ale i tak nie oczekiwałbym tego, ponieważ element na pasku akcji jest MenuItem, który nie wydaje się być Widokiem. Więc próbuję dostać się do View wewnątrz tego MenuItem – Kyros
zależy od tego, gdzie go wywołasz, powinieneś wywołać to wewnątrz działania, aby uzyskać widok, a następnie przekazać go do twojego okna popup.it działa dla mnie – Nermeen
Próbowałem znaleźć widok w OnCreate, gdzie go nazywasz? – Kyros