2012-03-05 8 views
9

アプリケーションに戻るボタン機能を実装したいと思います。アプリケーションでは、途中でバックボタンをクリックするたびに直接コントロールページにログインするので、誰かがonKeyDown()またはonBackPressed()メソッドをオーバーライドする場所を教えてもらえますか?onKeyDown()またはonBackPressed()

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back key pressed","Back key pressed"); 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 

私ものonCreateの内側とのonCreate外でこれを書いているが、それは働いていない......

+0

外に書くので、 onCreate()から外れるはずです。あなたはあなたの問題を正確に説明できますか?どうしましたか? – Huang

+0

この答えを見てください:http://stackoverflow.com/a/3558613/571353 – SERPRO

+1

関数の上に@Overrideを追加... ??? – mihail

答えて

7

ためには、あなたが前のAndroid 2.0の携帯電話をサポートするかどうかに依存します。 onBackPressed()メソッドがAndroid 2.0(API 5)に追加されました。

あなたが詳細については、Androidデベロッパーブログでこの記事を読むことをお勧めします:

http://android-developers.blogspot.com/2009/12/back-and-other-hard-keys-three-stories.html

+0

感謝の男しかし、このメソッドを書くのですか?私はこのメソッドをonCreateとout側のonCreateの中に書き込もうとしているからですが、まだ制御はメソッド内にはありません。 – user1249134

+0

ありがとうございました....-))))あなたたちは華麗です............. – user1249134

3

はい、あなたはあなたができる。これによりボタン

public void onBackPressed() { 

    Intent start = new Intent(currentclassname.this,which activity u want.class); 
     startActivity(start); 
     finishActivity(0); 
     } 

バックそれをオーバーライドすることができますどんな活動でも動けます。これは非常に簡単で簡単な方法です

1

履歴スタックからログインアクティビティを削除することについて懸念している場合。

finish()を実行します。他の活動を開始したときのあなたのログイン活動の中で

+0

3-05 14:13:56.327:W/KeyCharacterMap(374) :デフォルトのキーマップを使用する:/system/usr/keychars/qwerty.kcm.bin – user1249134

+0

HELLOの友人私のコントロールはOnBackメソッドの中には入っていません。 – user1249134

+0

インテントの編集=新しいインテント(getParent()、MyGroup.class); \t \t TabGroupActivity parentActivity =(TabGroupActivity)getParent(); \t \t parentActivity.startChildActivity( "連絡先の追加"、編集); – user1249134

3

下記のコードを参照してください。彼らは一般的な、 `にonKeyDown()`のような方法、または `onBackPressed()`オーバーライドする必要があります(あなたがそう美しく行うために、すなわち、IDEのEclipseを利用することができます)でのonCreate

@Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     //replaces the default 'Back' button action 
     if(keyCode==KeyEvent.KEYCODE_BACK) 
     { 

       Intent intent = new Intent(currentActivity.this, RequiredActivity.class); 
       finish(); 
       startActivity(intent); 

     } 
     return true; 
    } 
関連する問題