2013-09-26 3 views
0

Так что я пытаюсь обновить мой webView с помощью кнопки в панели задач, проблема? Ну, проще объяснить с помощью некоторого кода.Обновить веб-просмотр при нажатии кнопки?

Это в нижней части моего MainActivity.java

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
Bundle savedInstanceState) { 

final String url=getArguments().getString("url"); 

View rootView = inflater.inflate(R.layout.fragment_main_dummy,container, false); 
WebView wv = (WebView)rootView.findViewById(R.id.webView); 
wv.getSettings().setJavaScriptEnabled(true); 
wv.loadUrl("http://feedit.themeister.se/app/"+url+".php"); 
wv.setWebViewClient(new WebViewClient()); 
return rootView; 
} 

И для того, чтобы освежить Webview мне нужно «URL» строку, но строка создается внутри onCreateView, выше, что у меня есть этот на самом деле сделать обновление кнопками работу

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
switch (item.getItemId()) { 
    case R.id.action_refresh: 
     // Here should some code be placed but I don't know what to place 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
} 

}

Я не могу использовать строку URL-адрес или "WV" для WebView. Кто-нибудь знает, как я должен это делать?

Заранее благодарен!

+0

Вам нужно снова позвонить 'wv.loadUrl (" http://feedit.themeister.se/app/ "+ url +" .php ");' –

+0

Возможный дубликат [Есть ли лучший способ обновить WebView? ] (http://stackoverflow.com/questions/2563325/is-there-a-better-way-to-refresh-webview) –

ответ

1

Я не могу использовать строку url или «wv» для webView. Кто-нибудь знает, как я должен это делать?

Это происходит потому, что ваши две переменные, URL-адрес и wv являются местными жителями, а это означает, что они существуют только в вашем методе onCreateView.

Чтобы использовать ваши переменные в методе onOptionsItemSelected, поместите их объявление за пределы своего метода, например, в верхней части класса.

Итак, ступенчато:

  • поставил WebView wv; на вершине класса
  • Изменение WebView wv = (WebView)rootView.findViewById(R.id.webView); в wv = (WebView)rootView.findViewById(R.id.webView);
  • Измените onOptionsItemSelected обновить WebView так:

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
        case R.id.action_refresh: 
         wv.loadUrl(wv.getUrl()); 
         return true; 
        default: 
         return super.onOptionsItemSelected(item); 
    } 
    

Я также предлагаю вам использовать основы Java для областей переменных (например, этот: http://www.java-made-easy.com/variable-scope.html) и искать другие руководства по основам Java перед тем, как перейти на Android-код.

+0

Есть две проблемы. Одна новая проблема и одна существующая. 1. При установке 'wv = (WebView) rootView.findViewById (R.id.webView);' in onOptionsItemSelected. Я получаю сообщение об ошибке «rootView не может быть разрешен», и просто добавление строки, которая у меня ниже в onCreateView, не работает потому что у меня нет надувателя и такого. 2. Все еще нельзя использовать «url». – TheMeisterSE

+0

1. Нет, вы не поняли, что вам не нужно менять позицию 'wv = (WebView) rootView.findViewById (R.id.webView);' просто удалить «WebView» в начале строки , 2. Вам не нужно использовать переменную 'url' в' onOptionsItemSelected', просто используйте 'wv.loadUrl (wv.getUrl());'. – meynety

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