我创建了一个标签主机..我想要做的是更改所选的每个标签主机的背景颜色。在我的情况下,使用三个标签主机,我的第一个标签的backgroundcolor是白色,其余两个是黑色...现在我想要的是,当我点击我的第二个标签时,它的背景颜色变为白色,其余两个变为黑色等等。我正在发送我的代码..请任何人检查我必须这样做的地方。
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",
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"));
}
答案 0 :(得分:2)
尝试在xml布局文件中执行此操作。
使用值android:background="@drawable/mytabhostbg
,并在drawable文件夹中创建一个新的xml文件名mytabhostbg。
它应该是这样的:
< ?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>