Android中桌面上显示的应用名称和MainActivity的label相同,或者说活动名和应用名产生干扰的解决办法

一、说明

想在MainActivity顶部的ActionBar上面显示当前活动的名称,于是我就给MainActivity加上了android:label属性。但是问题来了,手机桌面上应用的名称非得和MainActivity的label名称相同。应用是应用的名称,活动是活动的名称,实在不理解这种设定。

二、解决办法

如果非要在顶部显示当前活动的名称,建议还是不要使用默认的ActionBar了,可以改用Toolbar,当前活动的名字想怎么起就怎么起,不会干扰到桌面上应用的名称。只不过这种方式稍微繁琐一点,但好在ToolBar的功能更强大,想放在哪里就放在哪里。

三、Toolbar的代码

  1. 首先在主活动布局activity_main.xml文件里面加上下面的代码,当然我是想让Toolbar显示在顶部的,可以根据自己的需要决定下面的Toolbar放置的位置:
 <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
  1. 然后在MainActivity.java文件里面的onCreate()方法里面加上下面的代码,我们可以自定义主标题,副标题:
Toolbar toolbar =findViewById(R.id.toolbar);
        toolbar.setTitle("主标题");
        toolbar.inflateMenu(R.menu.main);
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener()
        {
            @Override
            public boolean onMenuItemClick(MenuItem item)
            {
                switch (item.getItemId())
                {
                    case R.id.look:
                        Intent intent=new Intent(MainActivity.this,ViewActivity.class);
                        startActivity(intent);
                        break;
                    case R.id.exit:
                        ActivityCollector.finishAll();
                        Process.killProcess(Process.myPid());//杀掉当前进程
                        break;
                    default:
                }
                return false;
            }
        });
        toolbar.setSubtitle("新建日记");
  1. 因为Toolbar中还有菜单,菜单的xml文件代码如下,文件名称是main.xml,放在res目录下的“menu目录下”,当然默认是没有menu目录的,要自己新建:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/look" android:title="查看日记"/>
    <item android:id="@+id/exit" android:title="退出程序"/>
</menu>

四、界面效果

  1. 主界面如下:
    在这里插入图片描述
  2. 点击右上角竖着排列的“三个点”,弹出菜单(忽略鼠标,因为我用的是模拟器):
    在这里插入图片描述
    可以看到,运用Toolbar,你想给当前界面命名,想怎么命名就怎么命名,不会和应用的名称产生干扰,不仅支持主标题,也支持副标题。其他更多的设置可以自己尝试(借助IDEA的提示,看见方法名,联想、猜测到它的作用),这些代码也是我自己尝试验证的,就比如给Toolbar中的菜单设置监听事件。
发布了42 篇原创文章 · 获赞 10 · 访问量 2711

猜你喜欢

转载自blog.csdn.net/Deep_rooted/article/details/105066821