2010-10-25 40 views
10

Tôi đang cố gắng quay lại trang trước đó sau khi tải trình duyệt nhưng phải mất ba lần nhấp chuột để thực hiện việc đó. Tôi đã cố gắng ghi đè nút nhấp chuột trở lại nhưng vẫn phải mất ba lần nhấp. Tôi sử dụng đoạn mã sau để tải các trình duyệt:Trình duyệt Blackberry quay lại nhấp vào

BrowserSession browserSession; 
browserSession = Browser.getDefaultSession(); 
try{ 
    browserSession.displayPage(mapLocation); 
}catch(Exception e){ 
    e.printStackTrace(); 
} 

EDIT sao chép từ câu trả lời của thành viên:

Tôi muốn đi đến màn hình trước đó không phải là trang trước trong trình duyệt. Các mã cho nút quay lại:

protected boolean keyDown(int keycode, int status) { 
    if(Keypad.key(keycode) == Keypad.KEY_ESCAPE) { 
     _theApp.popScreen(this); 
     return true; 
    } 
    return false; 
} 
+0

Phương thức keyDown là một phần của lớp nào? Bạn đã thử đặt một bản in gỡ lỗi hay điểm ngắt ở đó, để xem nó có được thực thi không? –

+1

Nếu bạn vẫn ở xung quanh, vui lòng xem qua các câu hỏi của bạn và đánh dấu các câu trả lời đúng là Được chấp nhận bằng cách đánh dấu vào các biểu tượng V trống bên dưới điểm số của chúng. Cảm ơn. –

Trả lời

1

Đây là giải pháp cho trở lại khi bạn click vào trở lại (ESC), sau đó nó sẽ giúp bạn Lưu ý: os5.0 sẵn sau

import net.rim.device.api.browser.field2.BrowserField; 
import net.rim.device.api.browser.field2.BrowserFieldConfig; 
import net.rim.device.api.browser.field2.BrowserFieldHistory; 
import net.rim.device.api.ui.container.MainScreen; 
import net.rim.device.api.ui.container.VerticalFieldManager; 

public class NewsBrowserScreen extends MainScreen 
{ 

    String url="http://stackoverflow.com"; 
    VerticalFieldManager vertical; 
    BrowserField browserField; 
    BrowserFieldConfig browserFieldConfig; 
    BrowserFieldHistory browserFieldHistory; 
// BrowserSession browserSession; 

    public NewsBrowserScreen(int current_index,int popup,String url) 
    { 
     createGUI(); 
    } 
    private void createGUI()  
    {  
     vertical=new VerticalFieldManager(VERTICAL_SCROLL|VERTICAL_SCROLLBAR|HORIZONTAL_SCROLL|HORIZONTAL_SCROLLBAR); 
     browserFieldConfig=new BrowserFieldConfig(); 
     browserFieldConfig.setProperty(BrowserFieldConfig.NAVIGATION_MODE, BrowserFieldConfig.NAVIGATION_MODE_POINTER);  
     browserField=new BrowserField(browserFieldConfig); 
     browserFieldHistory=browserField.getHistory(); 
     vertical.add(browserField); 
     add(vertical); 
     browserField.requestContent(url); 
    } 
    public boolean onClose() 
    { 
     if(browserFieldHistory.canGoBack()) 
     { 
      browserFieldHistory.goBack();   
      return true; 
     } 
     else 
     { 
      browserFieldHistory.clearHistory(); 
      return super.onClose(); 
     } 
    } 
} 
0

Mã như sau

protected boolean keyDown(int keycode, int time) 
{ 
    ////keycode for back button 
    if(keycode == 1769472) 
    { 
     UiApplication.getUiApplication.popscreen(); 
     return true; 
    } 
    else 
    { 
     return super.keyDown(keycode, time); 
    } 
} 
0

mỗi khi bạn làm điều gì đó, hãy thử cập nhật currentLayoutState và previousLayoutState (thêm những vars đó vào ứng dụng của bạn) rồi ghi đè lên BackPres sed() nếu trên android hoặc onKeyPress() nếu không và cố gắng chuyển sang previousState nếu nó khác với trạng thái hiện tại.

Tôi đoán bạn đang theo dõi trạng thái ở đâu đó, đúng không?

EDIT: tôi thấy nó không phải về trạng thái. không nên thực hiện nhiều sự khác biệt mặc dù, tôi hy vọng bạn sẽ có được ý tưởng :)

2

để trở về trang trước, bạn có thể thử như sau:

UiApplication.getUiApplication().popScreen(UiApplication.getUiApplication().getActiveScreen()); 

Tôi hy vọng nó sẽ rất hữu ích.

Các vấn đề liên quan