在 Android 所有活动上设置标签栏底部

2023-12-14

我开发了一款Android应用程序。

在这里,我必须在所有 Android 活动上设置选项卡栏底部。我该怎么做。请给我解决方案。

我总共有 10 个活动,这意味着选项卡栏显示在所有 10 个活动的按钮上。我在 android 中该怎么做。请帮助我。

这是我的第一个活动:

   setContentView(R.layout.tabbar);
    TabHost tabHost = getTabHost();
    TabHost.TabSpec spec;
    Intent intent;

    TabSpec dbspec = tabHost.newTabSpec("Home");

    dbspec.setIndicator("Home", getResources().getDrawable(R.drawable.home));
    Intent dbIntent = new Intent(this, MainActivity.class);
    dbspec.setContent(dbIntent);
    tabHost.addTab(dbspec);

    TabSpec orderspec = tabHost.newTabSpec("Cart");
    orderspec.setIndicator("Cart", getResources().getDrawable(R.drawable.cart));
    Intent orderIntent = new Intent(this, ViewCartActivity.class);
    orderspec.setContent(orderIntent);
    tabHost.addTab(orderspec);
    TabSpec settingspec = tabHost.newTabSpec("My Account");
    settingspec.setIndicator("My Account", getResources().getDrawable(R.drawable.myaccount));
    Intent settingIntent = new Intent(this, CustomerLogin.class);
    settingspec.setContent(settingIntent);
    tabHost.addTab(settingspec);

标签栏.xml:

<?xml version="1.0" encoding="utf-8"?>
 <TabHost
   android:id="@android:id/tabhost"
   android:layout_width="match_parent"
   android:layout_height="match_parent"
    xmlns:android="http://schemas.android.com/apk/res/android">

       <RelativeLayout
    android:layout_width="match_parent"
    android:id="@+id/linearLayout1"
    android:layout_height="match_parent">

           <TabWidget
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@android:id/tabs"
        android:layout_alignParentBottom="true">
          </TabWidget>

    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@android:id/tabcontent">
    </FrameLayout>
    </RelativeLayout>
     </TabHost>

在第一个选项卡中必须执行 MainActivity(GridView) 活动。它被唤醒得很好。在主活动中,我必须点击任何项目意味着它要转到 SubCate(listview) 活动。这里我还必须在底部显示选项卡栏。我怎样才能放。

在 subcate.xml 文件中包含以下代码:

<include        
 android:id="@+id/footer"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    layout="@layout/tabbar" />

但标签栏不显示。这里出了什么问题。请帮助我。


请编写以下代码,而不是在一个 TabActivity 中添加多个活动的代码,它将解决您的问题。

ActivityStack.java

public class ActivityStack extends ActivityGroup {


private Stack<String> stack;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (stack == null)
        stack = new Stack<String>();
    // start default activity
    push("FirstStackActivity", new Intent(this, Tab_SampleActivity.class));
}

@Override
public void finishFromChild(Activity child) {
    pop();
}

@Override
public void onBackPressed() {
    pop();
}

public void push(String id, Intent intent) {
    Window window = getLocalActivityManager().startActivity(id, intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    if (window != null) {
        stack.push(id);
        setContentView(window.getDecorView());
    }
}

public void pop() {
    if (stack.size() == 1)
        finish();
    LocalActivityManager manager = getLocalActivityManager();
    manager.destroyActivity(stack.pop(), true);
    if (stack.size() > 0) {
        Intent lastIntent = manager.getActivity(stack.peek()).getIntent();
        Window newWindow = manager.startActivity(stack.peek(), lastIntent);
        setContentView(newWindow.getDecorView());
    }
}
}

TabActivity.java

public class TabActivity extends TabActivity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tab_screen);
        TabHost tabHost = getTabHost();
        Intent intent = new Intent().setClass(this, ActivityStack.class);
        TabHost.TabSpec spec = tabHost.newTabSpec("tabId").setIndicator("Temp", getResources().getDrawable(R.drawable.home));
        spec.setContent(intent);

        tabHost.addTab(spec);

        Intent intent1 = new Intent().setClass(this, ActivityStack.class);
        TabHost.TabSpec spec1 = tabHost.newTabSpec("tabId").setIndicator("Temp", getResources().getDrawable(R.drawable.invoice));
        spec1.setContent(intent1);
        tabHost.addTab(spec1);

        tabHost.setCurrentTab(0);
    }
}

FirstActivity.java

public class FirstActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView textView = new TextView(this);
        textView.setText("Tab Sample Activity ");
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(getParent(), SecondActivity.class);
                ActivityStack activityStack = (ActivityStack) getParent();
                activityStack.push("SecondActivity", intent);
            }
        });
        setContentView(textView);
    }
}

SecondActivity.java

public class SecondActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView textView = new TextView(this);
        textView.setText("First Stack Activity ");
        textView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(getParent(), ThirdActivity.class);
                ActivityStack activityStack = (ActivityStack) getParent();
                activityStack.push("ThirdActivity", intent);
            }
        });
        setContentView(textView);
    }
}

第三活动.java

public class ThirdActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

将以下 XML 文件添加到您的 res/layout 文件夹中。

1)tab_screen.xml

<?xml version="1.0" encoding="utf-8"?>
<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" >

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical"
        android:padding="3dp" >

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_above="@android:id/tabs"
            android:layout_weight="1" />

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true" />
    </RelativeLayout>

</TabHost>

2)主.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />

</LinearLayout>

AndroidManifest.xml:-

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.tabsample"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk android:minSdkVersion="8" />

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <activity
            android:name=".FirstActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".TabActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ActivityStack"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".SecondActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name=".ThirdActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
    </application>

</manifest>

请参阅下面的链接,了解有关在一个 TabActivity 下添加多个活动的更多信息以及完整示例。

Android - 一个 TabActivity 下的多个 Android Activity

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 所有活动上设置标签栏底部 的相关文章

随机推荐

  • 每行阅读 PDF

    如何阅读 PDF 文件line by line使用 iText5 for NET 我在互联网上搜索过 但我只找到了每页内容阅读 PDF 文件 请看下面的代码 public string ReadPdfFile object Filename
  • 如何使用 grid.arrange 排列任意数量的 ggplot?

    这是交叉发布在 ggplot2 谷歌组上的 我的情况是处理一个函数输出任意数量的图 取决于用户提供的输入数据 该函数返回 n 个图的列表 我想将这些图以 2 x 2 的形式排列 我正在努力解决以下同时存在的问题 我怎样才能灵活地获得任意 n
  • 如何使用git命名空间隐藏分支

    背景 我正在与一个大型团队合作 使用git用于版本控制 正常流程是 人们从 积压队列 中选择一张票 通过当地分支机构 即git checkout b my feature branch 进行多次提交 即git commit 将本地更改推送到
  • Firebase 令牌验证

    我有一个 PHP 后端和一个 Android 客户端 使用客户端 用户可以使用 Google 或 Facebook 均通过 Firebase 登录我的应用程序 我从以下位置获取令牌FirebaseUser并将其发送到我的服务器 很简单 第一
  • MongoDB 订单/销售聚合组每月总和 + 计数字段

    谁知道更好的解决方案来按日期和总计对订单进行分组并按来源进行计数 当然 我可以按来源分组 然后我仅获得该来源的总计 之后我可以更改结果以获得所需的结果 但我想知道是否可以通过一种简单的方式 group陈述 Eg ordersByApp 1
  • OpenCV-(-215:断言失败) _src.total() > 0 函数 'cv::warpPerspective'

    我的完整代码 import cv2 as cv import numpy as np cap cv VideoCapture 0 cv CAP DSHOW imgTarget cv imread photos TargetImage jpg
  • python 中 Appengine 的通配符搜索

    我刚刚开始在 Google App Engine 上使用 Python 构建联系人数据库 实现通配符搜索的最佳方法是什么 例如 我可以执行 query name newman 吗 不幸的是 Google 应用引擎无法进行部分文本匹配 来自文
  • 使用 Java 和 Samba JCIFS 访问文件

    我有一个关于使用 Samba JCIFS 访问文件的问题 所以我想访问一个服务器 我们将其称为server unv edu 工作组是WKGRP 此服务器中有一个共享 server unv edu pcb 我尝试访问服务器的方式是 publi
  • 防止变量名被 read.csv/read.table 破坏?

    我的数据集testdata有 2 个名为PWGTP and AGEP 数据位于 csv file 当我做 gt head testdata 变量显示为 PWGTP AGEP 23 55 26 56 24 45 22 51 25 54 23
  • 通过文件输入选择多个文件时删除单个文件

    当允许用户选择多个文件时 是否可以从要上传的文件列表中删除单个文件 例如 我有一个看起来有点像这样的输入
  • Android:使用 xslt 转换 xml

    我想使用 xsl 文件转换一些 xml 并以某种方式输出结果 我使用的是 Android Api Level 8 我当前的活动如下所示 但变压器保持为空 LogCat 抛出一个System err with org apache harmo
  • 如何消除const_iterator的常量性?

    作为这个问题的延伸Are const iterators faster 我还有一个问题const iterators 如何消除 a 的常量性const iterator 虽然迭代器是指针的广义形式 但仍然const iterator and
  • 获取 Dart 中的当前日期

    如何在 Dart 中获取独立于系统日期和时间的当前日期 我努力了DateTime now但它给出的是系统日期而不是实际日期 以防系统日期被更改 如果您不相信系统会给出正确的时间 则需要向其他地方询问以获取时间 这可以通过多种方式完成 具体取
  • ABP 中实体的 DTO 映射异常

    当我尝试插入实体时 出现有关 映射 的错误 插入物是由CreateCrudAppService 的方法 我的实体继承自FullAuditedEntity但相关的 DTO 仅指定了几个属性 我该如何处理这种情况 Unmapped member
  • 删除所有的 .字符串中除最后一个之外的(点)

    我需要删除字符串中除最后一个点之外的所有点 例如 如果字符串是 1 2 3 4 5 则结果需要是 1234 5 这是在 powershell 中 我做不到 先感谢您 正则表达式替换 所有点后面没有点 1 2 3 4 replace
  • 在 C++、OpenGL 中使用 De Casteljau 算法绘制贝塞尔曲线

    我正在尝试找到使用 decasteljau 算法生成贝塞尔曲线的方法 以完成我的一项作业 我能够使用正常方法生成贝塞尔曲线 但无法开始使用上述算法生成 如果有人可以建议我正确的方向或分享您拥有的任何代码 这将会有很大的帮助 我不只是按原样询
  • 萤火虫错误:找不到元素

    1客户端 通过 AJAX fn 向服务器发送请求 2服务器 响应形式为text xml并且只能正常运行 1 到 2 次 response setContentType text xml 3但仅在 1 2 请求之后 我在浏览器中收到错误 fi
  • 从 Google 云端硬盘下载图像

    我正在尝试使用 python api 从 Google Drive 下载一些图像文件 我使用的代码首先获取文件资源对象 找到 downloadUrl 并使用它来下载文件 问题是gif和png文件似乎没有下载网址 service self u
  • 连接到 Paypal 时出现 OpenSSL::SSL::SSLError (SSL_connect returned=1 errno=0 state=SSLv3 读取服务器证书 B:证书验证失败)

    我知道有很多关于此错误的讨论 但遗憾的是我无法在那里找到任何可行的解决方案 我正在开发一个电子商务网站分享部落 我正在尝试将 Paypal 实施为支付网关 所以我正在使用活跃商户 在开发机器上一切正常 但是当我将 Rails 应用程序部署到
  • 在 Android 所有活动上设置标签栏底部

    我开发了一款Android应用程序 在这里 我必须在所有 Android 活动上设置选项卡栏底部 我该怎么做 请给我解决方案 我总共有 10 个活动 这意味着选项卡栏显示在所有 10 个活动的按钮上 我在 android 中该怎么做 请帮助