I have created an tab host..what i want to do is to change the background color of each tab host on selected..in my case have use three tab host intially the backgroundcolor of my first tab is white and rest two are black...now what i want is when i click on my second tab it background color changes to white and rest two become black and so on..i am sending my code..plese anyone check where i have to do this..
public void createTabHost()
{
//create tabs
Resources res = getResources();
TabHost MainTabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
if(7 < Build.VERSION.SDK_INT)
{
MainTabHost.getTabWidget().setStripEnabled(false);
}
//call calendar Activity class
intent = new Intent().setClass(this, CalendarForm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = MainTabHost.newTabSpec("Calendar").setIndicator("Calendar",
res.getDrawable(R.drawable.calendar_ic)).setContent(intent);
MainTabHost.addTab(spec);
//call History Activity class
intent = new Intent().setClass(this, HistoryForm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = MainTabHost.newTabSpec("History").setIndicator("History",
开发者_JAVA技巧 res.getDrawable(R.drawable.calendar_ic)).setContent(intent);
MainTabHost.addTab(spec);
//call Statistic Activity class
intent = new Intent().setClass(this, StatisticForm.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
spec = MainTabHost.newTabSpec("Statistic").setIndicator("Statistic",
res.getDrawable(R.drawable.calendar_ic)).setContent(intent);
MainTabHost.addTab(spec);
//setbackground Style of tabHost
MainTabHost.setCurrentTab(0);
MainTabHost.getTabWidget().setWeightSum(3);
TabWidget tabHost=getTabWidget();
MainTabHost.setBackgroundColor(Color.parseColor("#E0DCC9"));
//MainTabHost.setBackgroundResource(R.drawable.back_img);
for (int j = 0; j < MainTabHost.getTabWidget().getChildCount(); j++)
{
((TextView)tabHost.getChildAt(j).findViewById(android.R.id.title)).setTextColor(Color.parseColor("#FFFFFF"));
MainTabHost.getTabWidget().getChildAt(j).setBackgroundColor(Color.parseColor("#000000"));
}
MainTabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#E0DCC9"));
((TextView)tabHost.getChildAt(0).findViewById(android.R.id.title)).setTextColor(Color.parseColor("#000000"));
}
Try to do this in the xml layout file.
Use the value : android:background="@drawable/mytabhostbg
, and create a new xml file name mytabhostbg in the folder drawable.
It should look like this :
< ?xml version="1.0" encoding="utf-8"?>
< selector xmlns:android="http://schemas.android.com/apk/res/android">
< item android:state_window_focused="false" android:drawable="@drawable/buttonbackbleu"
< item android:state_pressed="true" android:drawable="@drawable/buttonbackjaune" />
< item android:state_focused="true" android:drawable="@drawable/buttonbackbleu" />
< item android:state_enabled="true" android:drawable="@drawable/buttonbackbleu" />
< / selector>
<?xml version="1.0" encoding="UTF-8"?>
<item android:drawable="@drawable/back_image"
android:state_selected="true"
android:state_pressed="false" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/hq_ii" />
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#2C6B4C">
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
/>
</LinearLayout>
</TabHost>
精彩评论