0

タブレットがサーバーに接続されていない限り、タブを変更することができません。すべて同じ Java ファイルから実行されるタブ ホストがあります。私がする必要があるのは、ブール値が真でない限り、コードがタブを変更しないようにするために、ファイルに何らかのテストを行うことだけだと思います。しかし、私はこれを行う方法がわかりませんか?私のコードを表示する必要がある場合は、コメント ボックスに残してください。ご助力いただきありがとうございます !

4

1 に答える 1

1

次のように呼び出して、タブのクリックを無効/有効にすることができると思います。

myTabHost.getTabWidget().setClickable(isConnectedToServer);

しかし、それが良いUXかどうかはわかりません。ユーザーがタブを変更できるようにするのはどうですか。コンテンツにアクセスできない場合は、タブのメインビュー内に「サーバーに到達できません。インターネット接続を確認してください」などのメッセージが表示されます。 .

更新:代わりにこれを試してください(タブごとに):

myTabHost.getTabWidget().getChildTabViewAt(0).setEnabled(false);
myTabHost.getTabWidget().getChildTabViewAt(1).setEnabled(false);
myTabHost.getTabWidget().getChildTabViewAt(2).setEnabled(false);

別の更新:

public class MyActivity extends Activity {
    private TabWidget mTabWidget = null;
    protected void onCreate(Bundle savedInstanceState) {
    ...
    mTabWidget = myTabHost.getTabWidget();
    ...
}

protected void refreshTabs(boolean isConnected) {
    mTabWidget.getChildTabViewAt(0).setEnabled(isConnected);
    mTabWidget.getChildTabViewAt(1).setEnabled(isConnected);
    mTabWidget.getChildTabViewAt(2).setEnabled(isConnected);
}

コード内で必要なときにいつでも呼び出しrefreshTabsて、それらを有効/無効にすることができるようになりました。

于 2012-06-09T20:51:36.750 に答える