2011-08-07 5 views
1

メニューボタンを押したときに私のウェブビューをリフレッシュしたいと思います。webViewを更新するには? (私が得るのはFCです!)

TuzzaMobileActivity.java

package com.wiseheart.TuzzaMobile; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.Window; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 


public class TuzzaMobileActivity extends Activity { 
    final Activity activity = this; 
    private WebView webView; 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 
     setContentView(R.layout.main); 
     WebView webView = (WebView) findViewById(R.id.webview); 
     webView.getSettings().setJavaScriptEnabled(true); 
     webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY); 
     webView.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) 
      { 
       activity.setTitle("Loading..."); 
       activity.setProgress(progress * 100); 

       if(progress == 100) 
        activity.setTitle(R.string.app_name); 
      } 
     }); 

     webView.setWebViewClient(new WebViewClient() { 
      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) 
      { 
       // Handle the error 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) 
      { 
       view.loadUrl(url); 
       return true; 
      } 
     }); 

     webView.loadUrl("http://johnwiseheart.me"); 
    } 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu, menu); 
     return true; 
    } 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
     case R.id.quit: 
      finish(); 
      return true; 
     case R.id.refresh: 
      webView.loadUrl("http://johnwiseheart.me"); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 
} 

私はその終了ボタンの作品に適切に設定ボタンがありますが、私は私の更新ボタンをクリックしたときに、私はFCを取得する:これは私のコードです!私は何を間違えたのですか?

答えて

7

あなたがフィールドに自分のクラスで

private WebView webView; 

を定義しているが、あなたは、代わりにローカル変数に割り当てます。

WebView webView = (WebView) findViewById(R.id.webview); 

ソリューションは

webView = (WebView) findViewById(R.id.webview); 
にその行を変更することです
1

もう少し遅いかもしれませんが、これは私のonOptionsSelected内で使用しているものです。

この場合、私のWebviewはwebと呼ばれます。

私はあなたがリフレッシュしたい場合は、この決意を得ることができましたならば知っているが、リフレッシュするとき、私はあなたがやっているすべてを見ることができるものからすると、デフォルトのページをリロードしているいけない@私はあなたの上記のソースコード

+0

を更新しましたボタンをクリックして、エンド・ユーザーが実際のページをリフレッシュするのではなく、ホーム・ページに戻すのではなく、このコード・スニペットを使用してメニュー項目 'case R.id.reload_title:// IDが3の場合、リフレッシュ item.setIcon(R.drawable.ic_menu_refresh); webView.reload(); trueを返します。 –

関連する問題