2013-09-26 154 views
0

所以我想要做的是刷新我的webView使用操作欄中的按鈕,問題?那麼,用一些代碼解釋起來會更容易。按下按鈕時刷新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; 
} 

的底部,並以刷新我需要的「URL」字符串web視圖,但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」爲web視圖。任何人都知道我應該如何做這項工作?

提前致謝!

+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是locals,這意味着它們只存在於你的onCreateView方法下。

要在onOptionsItemSelected方法中使用您的變量,請將其聲明放在其方法之外,如在類的頂部。

所以,在步驟:

  • WebView wv;在類的頂部,
  • 變化WebView wv = (WebView)rootView.findViewById(R.id.webView);wv = (WebView)rootView.findViewById(R.id.webView);
  • 修改您onOptionsItemSelected刷新這樣的網頁流量:

    @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),然後在繼續使用Android代碼之前查找其他有關Java基礎知識的教程。

+0

有兩個問題。一個新問題和一個存在問題。 1.當把'wv =(WebView)rootView.findViewById(R.id.webView);'放在onOptionsItemSelected裏面時我得到一個錯誤,提示「rootView無法解析」,只是在onCreateView中添加下面的代碼行不起作用因爲我沒有充氣器等。 2.仍然不能使用「網址」。 – TheMeisterSE

+0

1.不錯,你誤解了,你不必改變'wv =(WebView)rootView.findViewById(R.id.webView);'的位置,'只是爲了移除行首的'WebView' 。 2.您不必在'onOptionsItemSelected'中使用變量'url',只需使用'wv.loadUrl(wv.getUrl());'。 – meynety