1. magnum, 18.10.2010 #1
    magnum

    magnum Threadstarter Neuer Benutzer

    Hallo zusammen,

    ich bin dabei mir ein Widget zuschreiben. Das Widget an sich ist fertig und liegt schön auf meinem Homescreen. Meine Umsetzung ist nun so das wenn ich irgendwo auf diesem Widget sich eine neue Activity öffnet. Dies ist auch soweit OK. Auf diesem Activity habe ich eine Liste. Durch das längeres drücken öffnet sich ein Contextmenü auf jedem Listen Eintrag. Nun öffne ich aus diesem Contextmenü eine weitere Activity. Hier ist nun das Problem, weil wenn ich auf dieser letzten Activity den goback/zurück Button drücke bekomme ich zwar durch die Vibration angezeigt das ich ihn zwar gedrückt hatte aber zurück springen auf die Activity mit der liste tut er nicht. Warum bloß?
    Auf dem Activity mit der Liste habe ich ebenfalls ein OptionsMenu. Die von dort aus gestarteten Activities kommen erfolgreich zurück.
    Der Start aller Activities erfolgt wie folgt:
    Code:
    Intent localIntent = new Intent(getApplicationContext(), <Klassenname>.class);
    startActivity(localIntent);
    
    Auch im Manifest sind alle Activities gleich beschrieben:
    Code:
            <activity android:label="@string/app_name" android:name=".<Klassenname>" android:configChanges="keyboardHidden|orientation" android:windowSoftInputMode="stateHidden">
              <intent-filter>
                    <action android:name="<Klassenname>" />
                </intent-filter>
            </activity>
    
    Ich hoffe ihr könnt mir irgendwie weiterhelfen.
     
  2. the_alien, 18.10.2010 #2
    the_alien

    the_alien Android-Lexikon

    Fragst du die Keypresses ab und leitest das Event nicht richtig weiter? Oder hast du onBackPressed() (bei Android > 2.0 afair) implementiert ohne super aufruf?
     
  3. magnum, 18.10.2010 #3
    magnum

    magnum Threadstarter Neuer Benutzer

    Hi,

    also ja ich habe in der Klasse in der es nicht funktioniert ein
    Code:
        @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) 
      {
          super.onKeyDown(keyCode, event);
          if (keyCode == KeyEvent.KEYCODE_CALL) 
          {
              performDial();
              return true;
          }
          return false;
      } 
    implementiert.

    Ein onBackPressed() nutze ich nicht.
     
  4. magnum, 18.10.2010 #4
    magnum

    magnum Threadstarter Neuer Benutzer

    Hi,

    und schon mal danke für Eure Hilfe ;) Wer lesen kann steht nicht auf dem Code :D. Also da war tatsächlich noch was mit der super-Methode noch nicht korrekt :D Hier nun die korrekte Version:
    Code:
    @Override
      public boolean onKeyDown(int keyCode, KeyEvent event) 
      {
          if (keyCode == KeyEvent.KEYCODE_CALL) 
          {
              performDial();
              return true;
          }
          return super.onKeyDown(keyCode, event);
      }