如何更改操作栏上的文本

2024-03-20

目前它只显示应用程序的名称,我希望它显示自定义的内容并且对于我的应用程序中的每个屏幕都不同。

例如:我的主屏幕可以在操作栏中显示“page1”,而应用程序切换到的另一个活动可以在该屏幕操作栏中显示“page2”。


更新:最新的 ActionBar(标题)模式:

FYI, 操作栏 http://developer.android.com/reference/android/app/ActionBar.html在 API Level 11 中引入。ActionBar 是 Activity 顶部的一个窗口功能,可以显示活动标题、导航模式和其他交互式项目(例如搜索)。

我清楚地记得自定义标题栏并使其在整个应用程序中保持一致。所以我可以和之前做一个比较,列出使用ActionBar的一些优点:

  1. 它为您的用户提供了跨应用程序的熟悉界面,系统可以优雅地适应不同的屏幕配置。
  2. 开发人员不需要编写太多代码来显示活动标题、图标和导航模式,因为 ActionBar 已经准备好顶级抽象。

例如:

=>正常方式,

getActionBar().setTitle("Hello world App");   
getSupportActionBar().setTitle("Hello world App");  // provide compatibility to all the versions

=> 自定义操作栏,

例如:

@Override
public void setActionBar(String heading) {
    // TODO Auto-generated method stub

    com.actionbarsherlock.app.ActionBar actionBar = getSupportActionBar();
    actionBar.setHomeButtonEnabled(true);
    actionBar.setDisplayHomeAsUpEnabled(false);
    actionBar.setDisplayShowHomeEnabled(false);
    actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.title_bar_gray)));
    actionBar.setTitle(heading);
    actionBar.show();

}

设置操作栏的样式:

ActionBar 为您提供基本且熟悉的外观、导航模式和其他要执行的快速操作。但这并不意味着它在每个应用程序中看起来都一样。您可以根据您的 UI 和设计要求对其进行自定义。您只需定义和编写样式和主题。

阅读更多内容:设置操作栏的样式 https://developer.android.com/training/basics/actionbar/styling.html

如果你想为 ActionBar 生成样式,那么这个风格生成器 http://jgilfelt.github.io/android-actionbarstylegenerator/工具可以帮助你。

=================================================== ===============================

旧: 早期:

=>正常方式,

您可以通过设置其来更改每个屏幕的标题(即活动)Android:label

   <activity android:name=".Hello_World"
                  android:label="This is the Hello World Application">
   </activity>

=> 自定义 - 标题 - 栏


但是,如果您想以自己的方式自定义标题栏,即Want to put Image icon and custom-text,那么以下代码对我有用:

main.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"/>

标题栏.xml

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

<ImageView android:id="@+id/ImageView01" 
            android:layout_width="57dp" 
            android:layout_height="wrap_content"
            android:background="@drawable/icon1"/>

<TextView 

  android:id="@+id/myTitle" 
  android:text="This is my new title" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  android:textColor="@color/titletextcolor"
   />
</LinearLayout>

标题栏.java

public class TitleBar extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final boolean customTitleSupported = 
                requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
        setContentView(R.layout.main);
        if (customTitleSupported) {
            getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE,
                R.layout.titlebar);
        }
        final TextView myTitleText = (TextView) findViewById(R.id.myTitle);
        if (myTitleText != null) {
            myTitleText.setText("NEW TITLE");
            // user can also set color using "Color" and then
            // "Color value constant"
            // myTitleText.setBackgroundColor(Color.GREEN);
        }
    }
}

字符串.xml

strings.xml 文件定义在values folder.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Hello World, Set_Text_TitleBar!</string>
    <string name="app_name">Set_Text_TitleBar</string>
    <color name="titlebackgroundcolor">#3232CD</color>
    <color name="titletextcolor">#FFFF00</color>
</resources>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改操作栏上的文本 的相关文章

随机推荐

  • 密码哈希(非 SSL)

    在非 SSL 传输的情况下 密码如何从浏览器发送到服务器 我想在发送之前使用 bcrypt 对密码 盐进行哈希处理 但似乎没有针对 bcrypt 算法的 javascript 实现 md5 SHA 1 足够好吗 PS 我的网站不存储任何用户
  • sqlite3_*()的正常例程是否存在内存泄漏?

    sqlite3 prepare v2 sqlite3 step sqlite3 finalize 的正常例程可能包含泄漏 听起来很荒谬 但测试代码似乎是这么说的 或者我错误地使用了 sqlite3 感谢您的任何回复 include
  • 向“self”发送消息会导致调用初始化方法吗?

    我有两节课Foo and Bar require pry byebug require fileutils class Foo lt Pathname include FileUtils def initialize path puts I
  • React 中的 props.children 不能是无状态组件吗?

    我正在尝试在 React 中练习渲染道具模式 但出现了以下错误 this props children 不是一个函数 这是我的代码 import React from react import render from react dom c
  • 在小程序或 Google AppEngine 中托管 Java 编译器?

    在网上搜索我发现Javac编译器是用Java编写的 并且我还查看了Sun网站上的源代码 来源相当大 我无法取得任何进展 此外 Eclipse 项目内部嵌入了一个编译器 但谁能接触它的源代码 所以我想我应该向你提出几个问题 Java 编译器可
  • 写入自己的日志文件的 Firefox 扩展

    经过一整天的研究如何将浏览器中的内容写入本地文本文件 我正在考虑诸如带有日志文件的 Firefox 扩展之类的东西 有什么方法可以让我的分机写入我的分机 意味着 在我的扩展内有一个日志文件 有关信息 我正在为 Linux 平台进行开发 有关
  • 为 F# 记录值生成的 IntelliSense XML 不正确 (VS2013)

    Update 正如评论中指出的 这是一个错误 我有向微软报告了此事 https connect microsoft com VisualStudio feedback details 816006 incorrect intellisens
  • 在延迟表达式求值中,R Shiny 使用变量的更改值

    这是问题的简单演示 library shiny ui lt fluidPage textOutput Text1 textOutput Text2 server lt function input output for i in 1 2 i
  • 如何将 Nest.js 微服务拆分为单独的项目?

    假设我想创建一个简单的影院管理平台 它需要很少的微服务 movies cinemas payments etc 你会如何在 Nest js 中做到这一点 我不希望它们位于同一个大文件夹中 因为这感觉就像制作一个整体 我希望它们成为单独的 N
  • 无法包含 Microsoft.Security.Application?

    我不能包括微软 安全 应用程序 using Microsoft Security Application 给出这个错误 命名空间 Microsoft 中不存在类型或命名空间名称 Security 是否缺少程序集引用 是的 我点击了Bin g
  • Java 序列化库,无需无参数构造函数和 Serialized 实现

    java世界中是否有任何方法可以在不需要无参数构造函数和Serialized实现的情况下进行序列化 Look at XStream http xstream codehaus org JSX http jsx org or 谷歌协议缓冲区
  • AMF消息结构?

    Adobe s AMF 格式的文档 http opensource adobe com wiki download attachments 1114283 amf3 spec 05 05 08 pdf似乎并没有实际指定整个 AMF 消息的结
  • 连接4条信息并保存

    保存 编辑和加载信息 我想要加载的信息是我自己添加的 每行信息将包含 4 条信息 字符串 整数 字符串 整数 通过 4 个单独的编辑框和一个按钮 我会将这些信息添加到 数据库 中 不确定我是否需要数据库 或者是否可以通过 Tstringli
  • 无法使用 Robo3T 连接到 Mongo 副本集

    我在使用 RoboMongo 连接到 Mongo 集群时遇到问题 当我在指南针中使用相同的连接字符串时 它可以工作 但 Compass 社区版不像 Robomongo 那样灵活 无法连接到副本集 Employee UAT hhds6666
  • PHP DateTime::createFromFormat 返回错误的日期

    当尝试跑步时createFromFormat使用太平洋 奥克兰时区和格式字符串 F Y 尽管我提供了 2019 年 9 月 但返回的日期是 10 月 1 日 我尝试在 CLI 和 FPM 中的 PHP 7 3 9 和 7 2 22 上运行它
  • 为什么 WPF 吞咽 Window.Activated 的事件处理程序中引发的异常?

    简单的 WPF 应用程序 带有简单 空的内容Window其中我将事件处理程序连接到窗口Activated event public partial class MainWindow public MainWindow InitializeC
  • 如何从 Nexus 存储库请求工件的大小?

    我知道 Nexus 支持 REST 请求 您能告诉我如何根据 Nexus 从存储库请求某些工件的大小吗 谢谢 您有以下选项 使用工件内容 URI 的完整路径并添加参数describe info 例如 https repository son
  • 如何将要渲染的任意窗口重定向到内存中的后缓冲区?

    我正在尝试一个自行开发的应用程序托管框架 并且我想抽象输入 输出 以便我可以优雅地处理崩溃 Chrome 使用非常相似的模型 有什么方法可以获取任意窗口句柄 并说服它开始渲染到后缓冲区吗 或者我应该首先创建自己的窗口 然后将客户端应用程序重
  • 如何告诉 TypeScript 接口 T 比具有索引签名的类型 U 窄?

    我有一个函数可以验证 JSON 响应以确保它对应于给定的形状 以下是我的类型 定义了所有可能的 JSON 值 取自https github com microsoft TypeScript issues 1897 issuecomment
  • 如何更改操作栏上的文本

    目前它只显示应用程序的名称 我希望它显示自定义的内容并且对于我的应用程序中的每个屏幕都不同 例如 我的主屏幕可以在操作栏中显示 page1 而应用程序切换到的另一个活动可以在该屏幕操作栏中显示 page2 更新 最新的 ActionBar