Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TabHost-每个选项卡中的活动_Android_Android Activity_Android Tabhost - Fatal编程技术网

Android TabHost-每个选项卡中的活动

Android TabHost-每个选项卡中的活动,android,android-activity,android-tabhost,Android,Android Activity,Android Tabhost,我正在尝试创建多个选项卡,每个选项卡都有不同的活动。唯一的缺点是我使用的是自定义布局文件,因此我的类扩展了活动,而不是TabActivity。尝试运行时失败,建议调用TabHost.Setup(ActivityGroupManager agm) 有人有如何实现这一目标的想法/实际例子吗 提前感谢这是我的活动示例,它也不是从TabActivity扩展而来的: protected TabHost tabs; // ... /** * Init tabs. */ private void in

我正在尝试创建多个选项卡,每个选项卡都有不同的活动。唯一的缺点是我使用的是自定义布局文件,因此我的类扩展了活动,而不是
TabActivity
。尝试运行时失败,建议调用
TabHost.Setup(ActivityGroupManager agm)

有人有如何实现这一目标的想法/实际例子吗


提前感谢

这是我的活动示例,它也不是从TabActivity扩展而来的:

protected TabHost tabs;

// ...

/**
 * Init tabs.
 */
private void initTabs() {
    tabs = (TabHost) findViewById(R.id.tabhost);
    tabs.setup();
    tabs.setBackgroundResource(R.drawable.bg_midgray);

    TabHost.TabSpec spec;

    // Location info
    txtTabInfo = new TextView(this);
    txtTabInfo.setText("INFO");
    txtTabInfo.setPadding(0, 0, 0, 0);
    txtTabInfo.setTextSize(14);
    txtTabInfo.setBackgroundResource(R.drawable.bg_tab_left_inactive_right_inactive);
    txtTabInfo.setTextColor(Color.DKGRAY);
    txtTabInfo.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP);
    txtTabInfo.setHeight(39);
    spec = tabs.newTabSpec("tabInfo");
    spec.setContent(R.id.tabInfo);
    spec.setIndicator(txtTabInfo);
    tabs.addTab(spec);

    // Maps
    txtTabMap = new TextView(this);
    txtTabMap.setText("MAP");
    txtTabMap.setTextSize(14);
    txtTabMap.setPadding(0, 0, 0, 0);
    txtTabMap.setBackgroundResource(R.drawable.bg_tab_middle_inactive_right_active);
    txtTabMap.setTextColor(Color.DKGRAY);
    txtTabMap.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.TOP);
    txtTabMap.setHeight(39);
    spec = tabs.newTabSpec("tabMap");
    spec.setContent(R.id.tabMap);
    spec.setIndicator(txtTabMap);
    tabs.addTab(spec);

    tabs.setCurrentTab(0);

    tabs.setOnTabChangedListener(this);
}

// ...

创建一个扩展
TabActivity
的附加类,并将该类作为主要活动

要在XML清单中实现这一点,您需要包括:

<activity android:name=".TabActivtyClass" android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

(来源:)



另外,请注意Eclipse布局编辑器不能处理选项卡。是的。

首先,在主布局中定义一个框架选项卡

<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">
  <linearlayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp">
    <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="5dp">
      </framelayout>
    </tabwidget>
</linearlayout>
</tabhost>
如果要切换到rolover选项卡,请使用选择器布局:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/helpblue" android:state_selected="true">
  <item android:drawable="@drawable/helpgray"></item>
</item></selector>

下面是示例屏幕截图


“…每个都有不同的活动”-您可能指的是不同的“视图”。扩展
TabActivity
只需要用于承载选项卡的主活动。选项卡中的所有其他活动都可以简单地扩展活动,它们将正常运行。
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, DashboardActivity.class);
spec = tabHost.newTabSpec("home").setIndicator("Home", res.getDrawable (R.drawable.ic_tab_dashboard)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, CreditCardActivity.class);
spec = tabHost.newTabSpec("sample1").setIndicator("Sample Tab",res.getDrawable (R.drawable.ic_tab_sample1)).setContent(intent);
tabHost.addTab(spec);
<selector xmlns:android="http://schemas.android.com/apk/res/android">
  <item android:drawable="@drawable/helpblue" android:state_selected="true">
  <item android:drawable="@drawable/helpgray"></item>
</item></selector>