2011-06-20 12 views
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つのタブを別のタブに切り替えて前のタブに戻ったときに、私は最初のタブに焦点を当てませんでした。Android、最初のタブをデフォルトのタブとして設定する方法

親タブを再度選択すると、ネストされたタブのフォーカスは常に最初のタブに表示されます。 私を案内してください、私はどこで私のコードで間違っていますか? ありがとうございます。

答えて

23

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

関連する問題