我有一个带有image和listview的布局。在它们下面我需要添加标签。当我使用选项卡小部件时,它会突出显示第一个选项卡,并在选项卡下方显示该选项卡活动结果。所以我必须停止第一个选项卡的活动。当点击选项卡时,只应该调用活动,它应该转到另一个屏幕。
下面是我的xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ImageView android:id="@+id/imageView1"
android:background="@drawable/banner"
android:layout_width="323dp"
android:layout_height="100dp"></ImageView>
<RelativeLayout android:id="@+id/relativeLayout1" android:layout_height="28dp" android:layout_width="fill_parent">
<ImageView android:layout_alignParentTop="true" android:onClick="mapfunction" android:layout_width="wrap_content" android:id="@+id/imageView2" android:src="@drawable/map1" android:layout_height="100dp" android:layout_marginRight="10dp" android:layout_toLeftOf="@+id/textView1"></ImageView>
<ImageView android:layout_width="wrap_content" android:id="@+id/imageView3" android:src="@drawable/listtab" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:layout_toLeftOf="@+id/textView2"></ImageView>
<TextView android:id="@+id/textView2" android:text="LIST" android:layout_width="wrap_content" android:textStyle="bold" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toLeftOf="@+id/imageView2" android:layout_marginRight="14dp"></TextView>
<TextView android:id="@+id/textView1" android:text="MAP" android:layout_width="wrap_content" android:textStyle="bold" android:layout_height="wrap_content" android:layout_alignBottom="@+id/imageView3" android:layout_alignParentRight="true" android:layout_marginRight="31dp"></TextView>
</RelativeLayout>
<ListView android:id="@id/ListView01" android:layout_width="fill_parent" android:layout_height="253dp"></ListView>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent" android:layout_height="44dp">
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="34dp"/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:padding="5dp" android:layout_height="fill_parent"/>
</TabHost>
</LinearLayout>
下面是我用于显示选项卡的活动代码。
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
intent = new Intent().setClass(this, Contacts.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("places").setIndicator("PLACES",
res.getDrawable(R.drawable.places))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, Contacts.class);
spec = tabHost.newTabSpec("camera").setIndicator("CAMERA",
res.getDrawable(R.drawable.camera))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(0);
如果您从不想突出显示当前选项卡,那么您只需将两个图形设置为相同即可。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- When selected, use grey -->
<item android:drawable="@drawable/ic_tab_files_white"
android:state_selected="true" />
<!-- When not selected, use white-->
<item android:drawable="@drawable/ic_tab_files_white" />
</selector>
只需不在活动中设置当前选项卡
tabHost.setCurrentTab(0);