3
public class SoapBox extends TabActivity{

    private TabHost tabHost;

    private void setupTabhost()
    {
        tabHost=(TabHost)findViewById(android.R.id.tabhost);
        tabHost.setup();
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab);

        TabHost tabHost=getTabHost();
        setupTabhost();
        tabHost.getTabWidget().setDividerDrawable(R.drawable.tab_space);

        Intent intent1=new Intent().setClass(this, MySoapBox.class);
        setupTab(new TextView(this), "My SoapBox", intent1);
        Intent intent2=new Intent().setClass(this, FriendsSoapBox.class);
        setupTab(new TextView(this),"Friends SoapBox", intent2);
        Intent intent3=new Intent().setClass(this, Recommendations.class);
        setupTab(new TextView(this),"Recommendations", intent3);

        tabHost.setCurrentTab(0);

    }
    private void setupTab(final View view, final String tag, Intent intent)
    {
        View tabView=createTabView(tabHost.getContext(), tag);
        TabSpec tabSpec=tabHost.newTabSpec(tag).setIndicator(tabView).setContent(intent);
        tabHost.addTab(tabSpec);
    }
    private static View createTabView(final Context context,final String text)
    {
        View view= LayoutInflater.from(context).inflate(R.layout.tabs_bg,null);
        TextView textView=(TextView)view.findViewById(R.id.tabsText);
        textView.setText(text);
        return view;
    }
}

ここでは、そのタブボタン内にもう1つのタブウィジェットがあり、ネストされたタブウィジェットを1つ実装しました。あるタブを別のタブに切り替えて前のタブに戻ると、最初のタブにフォーカスが移りませんでした。

親タブを再度選択すると、ネストされたタブのフォーカスは常に最初のタブにあるはずです。コードをどこで間​​違えているのか教えてください。前もって感謝します。

4

1 に答える 1

24

setCurrentTab();プロパティはデフォルトのタブを決定します。
を使用するtabHost.setCurrentTab(n);と、n 番目のタブがデフォルトのタブになります。

于 2011-06-20T08:27:18.593 に答える