2011-03-11 1 views
1

アクティビティを再起動するためのインテントを実行できるように、コンテキストメニュー内でデバイスのハード戻るキーが押されているかどうかを確認します。ありがとう。私はあなたのために銃をロードする前に相続人は私のコード今のところコンテキストメニューのバックハードキーからアクティビティを再開する

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 

    item = menu.add("Something"); 
    item.setIcon(R.drawable.ic_menu_something); 

    return super.onCreateOptionsMenu(menu); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    //search 
    if (item.getTitle() == "Something") { 
//how do I check if hard back key was pressed inside this IF statement as to run below intent 
     Intent myCustomView = new Intent(this, com.example.something.class); 
     startActivityForResult(myCustomView, RESULT_OK); 
    } 

答えて

0

は、一般的にハードウェアキーの機能を変更することはお勧めです。ユーザーは特定の動作を期待しており、混乱してはいけません。あなたはそれがベイにonKeyDownイベントをキャッチし、戻るキーが押されたものであるかどうかを確認するためにテストを行うことができますが、言っ

:再読み込み、あなたの質問に

public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //do your thing 
     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

、私は今、それが聞こえることを実現しますコンテキストメニューが表示されている間にプレスを検出したいと思うようなものです。それができるかどうかわかりませんが、上記のことがまだ役立つことを願っています。 – Blumer

+0

そのコードはIFステートメント内で実行されず、その外側は全体のアクティビティを反映するように変更されます。私はそのIFステートメントの中で効果が出るようにしたいだけです –

+0

ユーザーはメニューを表示し、戻るキー(メニューを閉じることはありません)を押します。プログラムは単にボタンが押されたことを知らせ、ユーザーは "バックキーが押されたので、プログラムは「何か」選択を特別な方法で処理します。あれは正しいですか? – Blumer

関連する問題