findViewById non deve essere eseguito su onOptionsItemSelected al fine di ottenere la vista del elemento di azione.
tuttavia, si noti che a volte le voci di azione possono trovarsi nel menu di overflow in modo da ottenere invece un valore nullo.
quindi, come si può fare?
ecco un esempio di codice:
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);
...
questo è stato testato durante l'uso della libreria ActionBarSherlock, su Android 4.1.2 e Android 2.3.5.
un'altra alternativa è utilizzare un modo più esteso, utilizzato su showcaseView library, here.
fonte
2013-08-25 09:24:37
No questo non funziona Ho provato prima di tutto e restituisce solo un puntatore nullo. Ma poi non me lo aspetterei comunque poiché l'elemento sulla barra delle azioni è un MenuItem che non sembra essere una vista. Quindi sto cercando di ottenere la Vista all'interno di quel MenuItem – Kyros
dipende da dove la stai chiamando, dovresti chiamarla all'interno dell'attività per ottenere la vista e poi passarla alla tua finestra popup. Funziona per me – Nermeen
Ho provato a trovare il visualizza in OnCreate, dove lo chiami? – Kyros