0

次のチュートリアルを使用してアプリケーションを作成しています

http://www.coderzheaven.com/2011/05/09/android-tabbars-example/

タブごとに、webviewを使用して1つのレイアウトを追加しました。タブが変更されるたびにネットワークの可用性を確認したいのですが、ネット接続が利用できない場合は、ページをerrorActivityにリダイレクトしました。

import android.app.TabActivity;
import android.content.*;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TabHost.TabSpec;

public class MyView extends TabActivity implements OnTabChangeListener
{   
    TabHost tabHost;
    String value;
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Resources res = getResources(); 
        tabHost = (TabHost)findViewById(android.R.id.tabhost);


        TabSpec FirstTabSpec = tabHost.newTabSpec("tab1");
        TabSpec SecondTabSpec = tabHost.newTabSpec("tab2");
        TabSpec ThirdTabSpec = tabHost.newTabSpec("tab3");
        TabSpec FourthTabSpec = tabHost.newTabSpec("tab4");


        FirstTabSpec.setIndicator("Tab1",res.getDrawable(R.drawable.tab1)).setContent(new Intent(this,FirstView.class));
        secondTabSpec.setIndicator("Tab2 ",res.getDrawable(R.drawable.tab2)).setContent(new Intent(this,SecondView.class));
        ThirdTabSpec.setIndicator("Tab3",res.getDrawable(R.drawable.tab3)).setContent(new Intent(this,ThirdView.class));
        FourthTabSpec.setIndicator("Tab4",res.getDrawable(R.drawable.tab4)).setContent(new Intent(this,FourthView.class));


        tabHost.addTab(FirstTabSpec);
        tabHost.addTab(SecondTabSpec);
        tabHost.addTab(ThirdTabSpec);
        tabHost.addTab(FourthTabSpec);
        tabHost.setOnTabChangedListener(this);
    }

    public void onTabChanged(String tabId) 
    {   
        if(!IsNetworkAvaialble())
        {

                webview.stopLoading();
                Intent myIntent = new Intent((Activity)MyView.this, NetErrorPage.class);   
            myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            ((Activity)MyView.this).startActivity(myIntent);
            finish();
        }

    }

}

ただし、タブをクリックすると、 「Webページが利用できません」と表示される2〜3秒前に、ページがエラーページにリダイレクトされます。これを止める方法は?

4

2 に答える 2

0

アクセスネットワークに次の権限を追加します。

<uses-permission android:name="android.permission.INTERNET" />
于 2012-09-23T21:28:03.543 に答える
0

私はこの問題を以下のように解決しました。

OnTabchangedイベントで、1つの静的ブール値をtrueに設定しました。各アクティビティクラスには、loadurlメソッドが含まれています。ネット接続が失敗し、静的ブール値がtrueに等しくない場合は、これを変更しました。ロードを停止し、アラートを表示しました。それ以外の場合は、URLをロードしました。

于 2012-10-08T09:42:45.947 に答える