2013-04-05 37 views
10

Xin vui lòng, bất kỳ ai đề xuất, làm cách nào tôi có thể vô hiệu hóa sự kiện nhấn nút quay lại khi làm việc với PhoneGap?Android DroidGap tắt nút quay lại

Tôi cần làm điều gì đó trong số Activity, (DroidGap mã) để kiểm soát sự kiện nút quay lại.

Thậm chí, mã sau hoạt động tốt trong Activity của tôi, nhưng không hoạt động khi được sử dụng với 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);  
} 

Trả lời

7

Calling setOnKeyListener trên appView giúp tôi ra ngoài.

Tôi chỉ có để thực hiện một thay đổi nhỏ trong đoạn mã trên tôi, mà là như sau:

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

Có thực sự xảy ra hai hành động khi sự kiện quan trọng, bức xúc - Action Up & Action Down

Vì vậy, sau đây nên được sử dụng để có được sự kiện quan trọng.

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

Đã xảy ra sự cố tương tự khi thử mã, nhưng sự kiện này được kích hoạt hai lần. – TechFanatic

+0

@PnestecDev: Bạn đang cố gắng làm điều gì đó trên nút quay lại của bạn? – NarendraJi

+0

Có, tôi đang cố gắng điều hướng các trang trên nhấp chuột trở lại. – TechFanatic

2

Trong trường hợp của tôi, tôi sử dụng Javascript + jquery như vậy:

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

     e.preventDefault(); 

     // do whatever you like here. 

}); 
+0

Có bất cứ điều gì, mà có thể được thực hiện trong mã hoạt động của tôi? – NarendraJi

+0

không hoạt động đối với tôi. jQ 1.8.3 + jQM 1.3.2 trên Android (Motorola Razor) – Daniel

+0

nó không hoạt động (jQ v1.11.3) – JFouad

5

Hơi tốt hơn phiên bản của Narendra. Nó có thể xử lý các cuộc gọi chính cho các phím bấm ngoài nút quay lại chính xác. Đặt mã bên dưới bên trong onCreate override chẳng hạn.

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

Đây là một verison ngẫu hứng tốt đẹp. Cảm ơn !!! – 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; 
} 
Các vấn đề liên quan