1. ホーム
  2. アンドロイド

[解決済み】アンドロイドアプリでToolbar.setTitleメソッドが効かない - アプリケーション名がタイトルとして表示される

2022-04-17 03:57:32

質問

android-support-v7:21ライブラリを使って、簡単なアプリケーションを作ろうとしています。

コードスニペット

MainActivity.java

public class MainActivity extends ActionBarActivity {

    Toolbar mActionBarToolbar;

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

        mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
        mActionBarToolbar.setTitle("My title");
        setSupportActionBar(mActionBarToolbar);
}

activity_main.xml

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar            
        android:id="@+id/toolbar_actionbar"
        android:background="@null"
        android:layout_width="match_parent"
        android:layout_height="?actionBarSize"
        android:fitsSystemWindows="true" />

</LinearLayout>

しかし、ツールバーには"My title"の代わりに%application name%が表示されています。

のようです。 setTitle メソッドは何の効果もありません。

My title」を表示させたい。

UPDです。 styles.xml でした。

<style name="AppTheme" parent="Theme.AppCompat">
    <item name="windowActionBar">false</item>
</style>

ということで、actionbarは使われていないのではと思いました。 を追加しました。 NoActionBar をスタイルペアレントとする。

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
</style>

しかし、問題は解決していない。

どのように解決するのですか?

解決策を発見

の代わりに。

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
mActionBarToolbar.setTitle("My title");
setSupportActionBar(mActionBarToolbar);

使用しました。

mActionBarToolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);            
setSupportActionBar(mActionBarToolbar);
getSupportActionBar().setTitle("My title");

そして、それが功を奏する。