2013-04-05 26 views
10

PhoneGapでの作業中に戻るボタンのプレスイベントを無効にするにはどうすればよいですか?Android DroidGapの無効化戻るボタン

バックボタンイベントを制御するために私のActivityDroidGapコード)で何かする必要があります。

でも、次のコードはActivityでうまく動作しますが、DroidGapと一緒に使用すると動作しません。私の場合は

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //preventing default implementation previous to android.os.Build.VERSION_CODES.ECLAIR 
     return true; 
    } 
    return super.onKeyDown(keyCode, event);  
} 

答えて

7

は私を助けました。

私は次のようである私の上記のコードスニペット、マイナーチェンジをしなければならなかった:

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK) { 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 

EDITED

実際にキー押下イベントながら、二つの動作が発生する - Action Up &は、 Action Down

したがって、キーイベントを取得するには、以下を使用する必要があります。

appView.setOnKeyListener(new OnKeyListener() { 
    public boolean onKey(View v, int keyCode, KeyEvent event) { 
     if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_UP) { 
      // Do Here whatever you want 
      return true; 
     } 
     return onKeyDown(keyCode, event); 
    } 
}); 
+0

同じ問題がコードを試しても、このイベントは2回発生しました。 – TechFanatic

+0

@PnestecDev:あなたは、戻るボタンをクリックして何かをしようとしていますか? – NarendraJi

+0

はい私はバッククリックでページを移動しようとしています。 – TechFanatic

2

ので、同じように、私はJavascriptを+のjqueryのを使用します。appViewsetOnKeyListenerを呼び出す

$(document).on('backbutton', 
    function(e){ 

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

私の活動のコードで行うことができることは、ありますか? – NarendraJi

+0

は私のためには機能しません。 Android(Motorola Razor)のjQ 1.8.3 + jQM 1.3.2 – Daniel

+0

動作しません(jQ v1.11.3) – JFouad

5

Narendraのバージョンよりわずかに優れています。戻るボタン以外のキー押下のキーアップコールを適切に処理できます。下のコードをonCreateオーバーライドの中に入れます。

appView.setOnKeyListener(new View.OnKeyListener() { 

     public boolean onKey(View v, int keyCode, KeyEvent event) { 
      if (event.getAction() == KeyEvent.ACTION_UP) { 
       if(keyCode == KeyEvent.KEYCODE_BACK) { 
        // Do Stuff Here 
        return true; 
       } 
       return onKeyUp(keyCode, event); 
      } 
      return onKeyDown(keyCode, event); 
     } 
    }); 
+0

これはすぐれた即興のverisonです。ありがとう!!! – Rajaraman

0
// ************ stop the back button ***************** 

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

     return true; 
    } 
    return super.onKeyDown(keyCode, event); 
} 
0
if (keyCode == KeyEvent.KEYCODE_BACK) { 

    return true; 
} 
関連する問題