2011-12-21 18 views
5

問題を解決してくれてありがとう!XMLスプラッシュ画面 - >ディスプレイWebview

現在、私のアプリは基本的にAndroidウェブビューを使用してウェブページを読み込みます。欠点は、ウェブページの読み込みに10秒以上かかる場合があることです。 Webページの読み込み中にスプラッシュXMLの「読み込み」画面を作成する方法はありますか?

私のコードであること

package com.ect; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.Window; 
import android.webkit.CookieSyncManager; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 

public class SomeActivity extends Activity { 

    /** Called when the activity is first created. */ 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     //THIS IS WHAT I WANT: setContentView(R.layout.main); 

     CookieSyncManager.createInstance(getBaseContext()); 

     // Let's display the progress in the activity title bar, like the 
     // browser app does. 


     getWindow().requestFeature(Window.FEATURE_PROGRESS); 

     WebView webview = new WebView(this); 
     setContentView(webview); 


     webview.getSettings().setJavaScriptEnabled(true); 

     final Activity activity = this; 
     webview.setWebChromeClient(new WebChromeClient() { 
     public void onProgressChanged(WebView view, int progress) { 
      // Activities and WebViews measure progress with different scales. 
      // The progress meter will automatically disappear when we reach 100% 
      activity.setProgress(progress * 1000); 
     } 
     }); 

webview.setWebViewClient(new WebViewClient() { 

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
     //Users will be notified in case there's an error (i.e. no internet connection) 
     Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
} 

public void onPageFinished(WebView view, String url) { 
    CookieSyncManager.getInstance().sync(); 
} 
}); 

CookieSyncManager.getInstance().startSync(); 
CookieSyncManager.getInstance().sync(); 

    //This will load the webpage that we want to see 
     webview.loadUrl("http://www.web.com/"); 

    } 
} 

...私のコードを見てみましょう。詳細を見ると、「これは私が望むものです:...」というコメントがありました。

このコメントではmain.xmlファイルが表示されますが、そのコメントを使用するとmain.xmlファイルWebビューは表示されません...

main.xmlファイルを表示して(Webビューを読み込んだら)、Webページを表示するにはどうしたらいいですか?

答えて

3

WebViewClientオブジェクトを作成し、onPageFinished()メソッドをオーバーライドする必要があります。次に、webView.setWebViewClient()を使用して、上記で作成したWebViewClientオブジェクトをWebViewに設定します。今度はsetContentView()のようないくつかのコードをonPageFinished()で実行して、読み込みが完了したらコンテンツの表示を読み込み画面からWeb表示に変更することができます。

このチュートリアルはちょっとした助けになるかもしれませんが、必要なものではありません。 http://www.giantflyingsaucer.com/blog/?p=1331

4

look hereとすれば、これは既に回答済みと思います。これは基本的にWebViewClientクラスのいくつかのメソッドをオーバーライドします。

3

イベントは、PageFinished()で使用する必要があります。ここで

は公式リファレンスである Clickme

あなたの主な活動setContentView(R.layout.main)必要があります。 onPageFinished()関数はsetContentView(webview)でなければなりません。

+0

ありがとうPiperoman!私はAndroidで開発するのが全く新しいです...コードをいくつか与えることができますか? – Joe

3

あなたはこのようなことをすることができます。レイアウトレイアウトフレームレイアウト(または相対レイアウト)では、このようなことをします。

<Framelayout android:layout_height="fill_parent" android:layout_width="fill_parent" 
....> 

    <Webview android:layout_height="fill_parent" android:layout_width="fill_parent"/> 

    <include android:layout_height="fill_parent" android:layout_width="fill_parent" 
    layout="@loadingLayout"/> 

</Framelayout> 

ウェブビューの読み込みが完了したら、含まれているコンポーネントの表示設定を[Gone]に変更するだけです。

私は助けてくれるといいですね。

+0

私にすべてのコードを教えてもらえますか? – Joe

+0

申し訳ありませんが、私はすべてのコードを持っているわけではありませんが、できる限りもっと完全な例を投稿しようとします。 –

関連する問題