2011-01-04 6 views
0

In meinem Projekt habe ich Aktivität mit Optionen-Menü. Ich überschreibe onOptionsItemSelected Methode und füge meine Handler zu den Menüpunkten hinzu (Schalter-Fall-Block). Aber in einem Handler brauche ich Zugang zu einem anderen Menüpunkt, wie kann ich das machen? findViewById funktioniert nichtAndroid Option Menü

@Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case R.id.visit: 
        //how to access another MenuItem from here? 
        return true; 
       } 
... 
+0

Wie können Sie auf einen Menüeintrag zugreifen, obwohl er noch nicht geklickt hat? Denken Sie daran, dass Sie von onOptionsItemSelected() darauf zugreifen, das nur aufgerufen wird, wenn das Menüelement ausgewählt ist. – Chromium

Antwort

2

Wenn Ihre Menüpunkte zu schaffen, könnten Sie die MenuItem Sie überprüfen möchten, in einem Attribut (das heißt einer der private Felder Ihrer Klasse) setzen. Auf diese Weise können Sie, wenn Sie Ihre Methode aufrufen, auf den anderen Menüeintrag zugreifen.

+0

Danke, aber möglicherweise Android haben native Mechanismus für Zugriff Optionen Menü? Zum Beispiel so etwas wie Activity.getOptionsMenu :) – Dmitriy

+0

Von dem, was ich im Javadoc greifen kann, denke ich nicht. Aber ich sehe nicht, was das Problem mit einem privaten Feld dafür ist, es ist grundlegende OOP. –