java - 如何更改操作栏标题

标签 java android xml android-studio

我在 Android Studio 中开发了一个操作栏,但是,操作栏显示 Activity 名称,而不是应用程序名称以及图标。

例如,我希望它显示应用程序名称以及刷新、设置和用户图标。相反,它显示 Activity 名称以及刷新、设置和用户图标。

菜单 Activity .java

public class MenuActivity extends ActionBarActivity {


    private Toolbar toolbar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_menu);

        toolbar = (Toolbar) findViewById(R.id.tool_bar);
        setSupportActionBar(toolbar);

    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        int id = item.getItemId();

        if (id == R.id.action_user) {
            Intent intent= new Intent(this,DashboardActivity.class);
            startActivity(intent);
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

MenuMain 显示应用程序名称,但是一旦运行代码,它会显示 Activity 名称而不是应用程序名称,我该如何纠正这个问题?

最佳答案

<强>1。最简单的方法是:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setTitle(R.strind.app_name);

<强>2。您还可以使用自定义工具栏布局

我们更改您现有的代码

    toolbar = (Toolbar) findViewById(R.id.tool_bar);
    setSupportActionBar(toolbar);

喜欢这个:

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.actionbar_main;

请按照我的教程来了解如何实现它。

Here's my solution - create a TextDrawable logo using custom toolbar
  1. Create a custom layout with name action_bar.xml
  2. Put into it this code

    <ImageView
        android:id="@+id/image_view"
        android:layout_width="32dp"
        android:layout_height="32dp"
        tools:src="@mipmap/ic_launcher"/>
    
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="10dp"
        android:text="@string/app_name">   //THIS GUY 
        android:textColor="#ffffff"
        android:textSize="24sp"
        android:textAlignment="gravity"
        android:gravity="center_vertical"/>
    

  3. Add to your onCreate method in MainActivity class this code:

    //SET A DRAWABLE TO IMAGEVIEW
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);
    getSupportActionBar().setCustomView(R.layout.actionbar_main);
    
    TextDrawable drawable = TextDrawable.builder()
            .buildRound("A", getResources().getColor(R.color.colorAccent));
    ImageView imageView = (ImageView) findViewById(R.id.image_view);
    imageView.setImageDrawable(drawable);
    
  4. After changes it should look like:

注意:为了显示 appName,我使用了 TextViewandroid:text="@string/app_name" 值。

希望对你有帮助

关于java - 如何更改操作栏标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34710770/

相关文章:

jQuery ajax错误函数即使查询成功也会执行

java - 如何在不破坏界面的情况下制作可滚动的客户端?

java - 是否可以使用复杂的 XML 模板文件动态生成 Android UI?

android - 创建像 pinterest 应用程序一样的 GridView

java - 无法显示来自 Intent 的字符串

xml - 您可以转换无序的 xml 以匹配 xsd :sequence order?

java - spring web service 2.0所需的axiom依赖版本

java - 从 JAR 文件中读取目录内容

android - 如何在 ListView 中为奇数和偶数位置膨胀 View

xml - docbook 5 中的字符样式