3

私はこのソリューションを使用しようとしました AndroidWebViewプログレスバー

それは私に

    final ProgressBar Pbar;
    Pbar = (ProgressBar) findViewById(R.id.pB1);

    super.onCreate(savedInstanceState);
    setContentView(R.layout.layout_browser);
    browser=(WebView)findViewById(R.id.layout_browser);

    browser.getSettings().setJavaScriptEnabled(true);
    browser.getSettings().setPluginsEnabled(true);
    browser.getSettings().setPluginState(WebSettings.PluginState.ON);

    browser.setWebChromeClient(new WebChromeClient() {
        public void onProgressChanged(WebView view, int progress) 
           {
           if(progress < 100 && Pbar.getVisibility() == ProgressBar.GONE){
               Pbar.setVisibility(ProgressBar.VISIBLE);
           }
           Pbar.setProgress(progress);
           if(progress == 100) {
               Pbar.setVisibility(ProgressBar.GONE);
           }
        }
    });

    browser.loadUrl("google.com");

Webビューレイアウトにプログレスバーを追加しましたが、クラッシュします。なぜですか?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout
 xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
> 
<ProgressBar android:id="@+id/pB1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:layout_centerVertical="true"
    android:padding="2dip">
</ProgressBar>
<WebView android:id="@+id/layout_browser" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
/>   
</RelativeLayout>

注:ステータスバーを非表示にするので、この方法を使用しようとしました

4

1 に答える 1

2

この行Pbar = (ProgressBar) findViewById(R.id.pB1);は後でなければなりませんsetContentView(R.layout.layout_browser);

何かのようなもの、

setContentView(R.layout.layout_browser);
Pbar = (ProgressBar) findViewById(R.id.pB1);
于 2012-11-19T12:31:08.557 に答える