67

コンパイル時の前に、アクションバーのタイトルとサブタイトルを設定したいと思います。私はこのようにする方法を手に入れました:

ActionBar ab = getActionBar();
ab.setTitle("My Title");
ab.setSubtitle("sub-title");

しかし、私は実行時にそれをしたくありません。これらのタイトルを指定できるxmlファイルまたは場所はありますか?

私はこれを達成しようとしています:

ここに画像の説明を入力してください

編集:

xmlでそれが必要な理由は、アプリがAPIレベル8でサポートされるようにするためです。また、メソッドgetActionBar()は少なくともレベル11でサポートされます。

4

12 に答える 12

94

次のようなことを行って、両方のバージョンのコードを作成できます。

/**
 * Sets the Action Bar for new Android versions.
 */
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
private void actionBarSetup() {
  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
    ActionBar ab = getActionBar();
    ab.setTitle("My Title");
    ab.setSubtitle("sub-title"); 
  }
}

次に、を呼び出しactionBarSetup()ますonCreate()。はif、新しいAndroidバージョンでのみコードを実行し@TargetApi、コードをコンパイルできるようにします。したがって、古いAPIバージョンと新しいAPIバージョンの両方で安全になります。

または、 ActionBarSherlock編集を参照)を使用して、すべてのバージョンでActionBarを使用することもできます。SherlockActivityアクティビティを拡張したり呼び出したりするなど、いくつかの変更を行う必要がありますgetSupportActionBar()が、これは非常に優れたグローバルソリューションです。

編集

この回答が最初に作成されたときActionBarSherlock、それ以降は非推奨になりましたが、互換性の解決策として利用できることに注意してください。

現在、Googleのappcompat-v7ライブラリは同じ機能を提供していますが、Googleによってサポートされています(そして積極的に更新されています)。マストを実装したいアクティビティActionBar

  • 拡張するAppCompatActivity
  • Theme.AppCompat導関数を使用する

このライブラリを使用してインスタンスを取得するActionBarには、適切な名前のgetSupportActionBar()メソッドが使用されます。

于 2013-01-12T20:42:43.653 に答える
16

アクションバーのタイトルは、AndroidManifestの次の場所にあります。

<activity 
    . . .
          android:label="string resource" 
    . . .
</activity>

android:label アクティビティのユーザーが読み取り可能なラベル。アクティビティをユーザーに表示する必要がある場合、ラベルは画面に表示されます。多くの場合、アクティビティアイコンと一緒に表示されます。この属性が設定されていない場合は、代わりにアプリケーション全体に設定されたラベルが使用されます(要素のlabel属性を参照)。アクティビティのラベルは、ここで設定されているか要素によって設定されているかに関係なく、すべてのアクティビティのインテントフィルターのデフォルトのラベルでもあります(要素のlabel属性を参照)。ラベルは、文字列リソースへの参照として設定する必要があります。これにより、ユーザーインターフェイスで他の文字列のようにローカライズできます。ただし、アプリケーションの開発中の便宜のために、生の文字列として設定することもできます。

于 2013-01-12T21:45:13.757 に答える
13

これを試してください:

android.support.v7.app.ActionBar ab = getSupportActionBar();
ab.setTitle("This is Title");
ab.setSubtitle("This is Subtitle");
于 2015-12-01T08:48:26.530 に答える
5

サポートライブラリV7からの誰もコメントしなかった別のオプションがGoogleによって実装されました。これはAndroid2.2から最後までActionBarSupport互換性があります。 これを変更すると、すべてのAndroidバージョンで実行できます。ActionBar
ActionBargetSupportActionBar().setTitle("")

于 2013-12-29T13:59:02.143 に答える
3

いいえ!あなたは実行時にそれをしなければなりません。

アプリに下位互換性を持たせたい場合は、デバイスのAPIレベルを確認してください。11より大きい場合は、ActionBarをいじって、字幕を設定できます。

if(Integer.valueOf(android.os.Build.VERSION.SDK) >= 11){
    //set actionbar title
}
于 2013-01-12T19:51:28.783 に答える
3
    <activity android:name=".yourActivity" android:label="@string/yourText" />

このコードをAndroidマニフェストファイルに入れると、アクションバーのタイトルが好きなように設定されます。

于 2016-04-20T06:41:12.790 に答える
3

これを試して

マニフェストファイルに移動するだけです。マニフェストファイルで各アクティビティのラベルを定義しました。

<activity
        android:name=".Search_Video"
        android:label="@string/app_name"
        android:screenOrientation="portrait">
    </activity>

ここで変更

android:label = "@ string / your_title"

于 2016-12-24T08:00:31.603 に答える
3
supportActionBar?.title = "Hola tio"
supportActionBar?.subtitle = "Vamos colega!"
于 2019-06-04T11:50:44.643 に答える
2

これを試して:

strings.xmlにタイトルとサブタイトルを追加します...

ActionBar ab = getActionBar();
ab.setTitle(getResources().getString(R.string.myTitle));
ab.setSubtitle(getResources().getString(R.string.mySubTitle));
于 2013-01-12T19:57:13.947 に答える
1

これはKotlinのささいなワンライナーです

supportActionBar?.title = getString(R.string.coolTitle)

于 2017-08-20T18:00:46.280 に答える
0

アクティビティの場合、このアプローチを使用して、マニフェストでタイトルとともにサブタイトルを指定できます。

マニフェスト:

<activity
    android:name=".MyActivity"
    android:label="@string/my_title"
    android:description="@string/my_subtitle">
</activity>

アクティビティ:

try {
    ActivityInfo activityInfo = getPackageManager().getActivityInfo(getComponentName(), PackageManager.GET_META_DATA);
    //String title = activityInfo.loadLabel(getPackageManager()).toString();
    int descriptionResId = activityInfo.descriptionRes;
    if (descriptionResId != 0) {
        toolbar.setSubtitle(Utilities.fromHtml(getString(descriptionResId)));
    }
}
catch(Exception e) {
    Log.e(LOG_TAG, "Could not get description/subtitle from manifest", e);
}

このように、タイトル文字列を1回指定するだけで、そのすぐ横に字幕を指定できます。

于 2017-05-09T21:25:06.257 に答える
0

を使用して、アクションバーでタイトルを設定できますAndroidManifest.xml。にラベルを追加しますactivity

<activity
            android:name=".YourActivity"
            android:label="Your Title" />
于 2017-05-26T06:29:20.073 に答える