我正在尝试在一个标签中显示一个Activity,但却无法让它工作。 我已经检查过该活动是单独显示的,但是当我尝试将其放入选项卡时,我会得到一个空标签。
这是标签屏幕及其XML布局文件:
public class TestTabs extends TabActivity{
private TabHost tabHost; // The tabhost for all the tabs
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.tabbed_screen);
tabHost = getTabHost();
initTabs();
}
protected void addTab(String tabName, Intent tabIntent){
TabSpec tabSpec = tabHost.newTabSpec(tabName);
tabSpec.setIndicator(tabName);
tabSpec.setContent(tabIntent);
tabHost.addTab(tabSpec);
}
protected void initTabs() {
addTab("1",new Intent(this,TestActivity.class));
}
}
布局:
<?xml version="1.0" encoding="utf-8"?>
<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost">
<LinearLayout android:id="@+id/LinearLayout01"
android:orientation="vertical" android:layout_height="fill_parent"
android:layout_width="fill_parent">
<TabWidget android:id="@android:id/tabs" android:layout_height="fill_parent" android:layout_width="fill_parent"></TabWidget>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_height="fill_parent" android:layout_width="fill_parent">
</FrameLayout>
</LinearLayout>
</TabHost>
这是“孩子”活动:
public class TestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
// The super.onCreate() call will set the general frame also for this Screen:
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
布局:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:ellipsize="end"
android:maxLines="1"
android:singleLine="true"
android:text="Hello World"
android:textSize="12sp"
android:textStyle="bold" />
正如我所说,儿童活动在单独时显示正常,但当我把它放在标签中时,我得到没有任何内容的标签。
我可能错过了一些明显的东西,但这是我第一次在Android中使用标签做任何事情。
答案 0 :(得分:0)
您应该更改方法“addTab”的名称,因为它的TabActivity的默认方法可能会导致此问题。其次,您的代码应该是:
public class TestTabs extends TabActivity{
private TabHost tabHost; // The tabhost for all the tabs
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.tabbed_screen);
tabHost = getTabHost();
TabSpec tabSpec;
Intent intent = new Intent().setClass(this, tab1_activity.class);
tabSpec = tabHost.newTabSpec("Tab-1").setIndicator("Tab-1",drawable1_obj).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, tab2_activity.class);
tabSpec = tabHost.newTabSpec("Tab-2").setIndicator("Tab-2",drawable2_obj).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
}
}