次のチュートリアルを使用してアプリケーションを作成しています
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秒前に、ページがエラーページにリダイレクトされます。これを止める方法は?