0

Я использую фрагменты и один из моих фрагментов У меня есть веб-просмотр. Я хочу добавить кнопку изображения, которая позволит пользователю вернуться.ImageButton в ActionBar для GoBack в WebView

У меня есть 4 фрагмента, и их имена Fragment1, Fragment2, Fragment3, Fragment4.

Также у меня есть 4 макета tab1.xml tab2.xml tab3.xml tab4.xml и есть 4 объекта веб-просмотра во всех макетах.

Когда я нажимаю Fragment1, он открывает tab1.xml, а webview1 tab1.xml открывает сайт www.site.com, и пользователь начинает заниматься серфингом внутри webview1.

Если пользователь посещает 2 или более страниц в webview1, я хочу, чтобы этот пользователь мог вернуться с помощью кнопки.

Как это сделать?

+0

вы хотите вернуться на предыдущую страницу в WebView или из текущего фрагмента? – Gru

+0

Я описал, когда посетитель открывает фрагмент, этот фрагмент имеет веб-представление. Посетитель может просматривать этот веб-просмотр, и если пользователь посетил более 1 страницы, пользователь должен вернуться на предыдущую веб-страницу с помощью кнопки или андроидной кнопки возврата –

ответ

1

В ваших decalarations:

WebView web = null; 

В ваших onCreateView;

// Prepare WebView. 
web = (WebView) v.findViewById(R.id.htmlDisplay); 
// Set WebView. 
final WebSettings webSettings = web.getSettings(); 

// Enable JavaScript. 
webSettings.setJavaScriptEnabled(true); 
webSettings.setJavaScriptCanOpenWindowsAutomatically(true); 

В вашей задней кнопки (не физическое один):

web.goBack() 

Если вы хотите использовать физическую заднюю кнопку:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
    if(event.getAction() == KeyEvent.ACTION_DOWN) 
    { 
     switch(keyCode) 
     { 
     case KeyEvent.KEYCODE_BACK: 
      if(web.canGoBack() == true) 
      { 
       web.goBack(); 
      } 
      else 
      { 
       finish(); 
      } 
      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 
+0

Я пишу свой код, пожалуйста, помогите при реализации. Спасибо –

+0

@Override public View onCreateView (LayoutInflater inflater, контейнер ViewGroup, Bundle savedInstanceState) { \t LinearLayout ll = (LinearLayout) inflater.inflate (R.layout.tab1, container, false); \t webView = (WebView) ll.findViewById (R.id.webView1); \t webView.setWebViewClient (новый WebViewClient()); \t webView.getSettings(). SetJavaScriptEnabled (true); \t webView.getSettings(). SetLoadWithOverviewMode (true); \t webView.getSettings(). SetUseWideViewPort (true); \t if (webViewBundle == null) { \t webView.loadUrl ("http://www.site.com"); \t} else { \t webView.restoreState (webViewBundle); \t} \t return ll; } –

+0

Просто попробуйте, согласно вашему коду, поставить последнее переопределение, которое я ввел в свой ответ (что для использования вашей физической кнопки). замените web webView (в соответствии с вашим именем WebView). Запустите, перейдите, используйте кнопку «Назад». –

Смежные вопросы