2013-05-20 40 views
7

Tôi đã ghi đè hàm OnBackPressed bên trong hoạt động của mình, nhưng nó không được gọi. Trên các hoạt động khác, nó hoạt động tốt. Đây là phương pháp của tôi:OnBackPressed không được gọi?

@Override 
public void onBackPressed() { 
    Log.e("back",""+1); 
    UserPage.getstate().finish(); 
    Intent i=new Intent(CreateGroup.this,UserPage.class); 
    i.putExtra("title11","dd"); 
    startActivity(i); 
    finish(); 
} 

Phương pháp này không được gọi, và mặc định OnBackPresssed được gọi mỗi khi tôi nhấn nút quay lại.

+3

"UserPage.getstate(). Finish();" là gì đang làm? –

+0

bạn nhận được Log.e này ("back", "" + 1); trong nhật ký ?? –

+0

Tôi đã sử dụng một hàm tĩnh trong UserPage để nhận trạng thái của hoạt động và sau đó tôi hoàn thành nó. –

Trả lời

7

Hãy thử mã này

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
    } 
    return true; 
} 
+0

Tôi đã cố gắng hết sức và nó không hoạt động. –

+0

Tôi đang sử dụng phương thức onStop và onRestart trong Hoạt động UserPage. Điều đó có liên quan gì đến điều này không? –

+0

Ngoài biểu mẫu thay đổi hoạt động, bạn có thấy đăng nhập không ?? Hoặc nút quay lại cũng không hoạt động? Bạn là gì phiên bản android btw? –

4

Bạn đã thử cái này chưa? ,

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { 
     // do something on back pressed. 


     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
2
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     Log.e("back",""+1); 
     UserPage.getstate().finish(); 
     Intent i=new Intent(CreateGroup.this,UserPage.class); 
     i.putExtra("title11","dd"); 
     startActivity(i); 
     finish(); 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 
6

Đã có một vấn đề tương tự. Vấn đề đối với tôi là ghi đè lên onKeyDown() ẩn các sự kiện keydown KEYCODE_BACK.