2011-01-27 17 views
3

私はonBackPressed()メソッドを使いたいが、まだ2.0より前のAndroid SDKのサポートを提供したい。 onBackPressed()はAndroid SDK 2.0で導入されました。しかし、どのように行うには?onBackPressed()と下位互換性を持つ

答えて

8

の使用onKeyDown;

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 

      // Your Code Here 

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
4

キーイベントをキャプチャして、バックキーを確認することができます。あなたの活動について:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if(keyCode == KeyEvent.KEYCODE_BACK){ 
     goBack(); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

そして、必要な場所にgoBackメソッドを書きます。で

より:Android - onBackPressed() not working

1

回答---> http://apachejava.blogspot.com/2011/01/backward-compatibility-using.html

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR 
      && keyCode == KeyEvent.KEYCODE_BACK 
      && event.getRepeatCount() == 0) { 
     // Take care of calling this method on earlier versions of 
     // the platform where it doesn't exist. 
     onBackPressed(); 
    } 

    return super.onKeyDown(keyCode, event); 
} 

@Override 
public void onBackPressed() { 
    // This will be called either automatically for you on 2.0 
    // or later, or by the code above on earlier versions of the 
    // platform. 
    return; 
} 
+0

このソリューションは機能しません。 2つのもの...アンドロイド.os.Build.VERSION.SDK_INTはAndroid 1.5では利用できません。 2つ目は、super.onBackPressed()を呼び出す必要があります。それ以外の場合は、戻るボタンが機能しません。 Android 1.5デバイスでsuper.onBackPressed()を呼び出すとエラーが返されます。 – Jona

+0

これは私のコードサンプルではありません。私はアンドロイドの開発者の公式ブログのスポットからそれを得た。 –