web-dev-qa-db-ja.com

アクションバーアイコンの変更

現在、アプリケーションのテーマサポートを実装しており、その一部でアクションバーアプリのアイコンを変更しています。ホロライトを選択したときに暗いアイコンを使用したい。アクションバーアプリのアイコンが設定されている部分を除いて、すべてがメソッドで実行されます。私が使用しようとしているコードは次のとおりです。

getActionBar();
ActionBar.setIcon(R.drawable.my_icon);

「ここで利用できるそのような参照はありません」は私が得ているエラーです。これはどのように正しく行う必要がありますか?

ところで私のminSdkVersion14アクションバーのシャーロックのものはありません。

8
SweSnow
_getActionBar();
_

あなたはすぐそこにアクションバーを捨てています。 getActionBar()ActionBarのインスタンスを返します。このインスタンスは、setIcon()を呼び出す必要があります。そのようです:

_ActionBar actionBar = getActionBar();
actionBar.setIcon(R.drawable.my_icon);
_
19
Kevin Coppock

少し遅い答えですが、役に立つかもしれないと思いました。

アクティビティ内から: APIレベル14以上の場合:

getActionBar().setIcon(R.drawable.my_icon);

より低いAPIレベルの場合、ActionBarActivityを拡張してから、次のことを行う必要があります。

getSupportActionBar().setIcon(R.drawable.my_icon);

フラグメント内から: APIレベル14以上の場合:

getActivity().getActionBar().setIcon(R.drawable.my_icon);

より低いAPIレベルの場合、使用できます(アクティビティはActionBarActivityを拡張する必要があります):

((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);

どちらの場合も、アイコンまたはロゴを設定する前に、setDisplayShowHomeEnabled(true)を呼び出す必要があります。

((ActionBarActivity)getActivity()).getSupportActionBar().setDisplayShowHomeEnabled(true);

((ActionBarActivity)getActivity()).getSupportActionBar().setIcon(R.drawable.my_icon);
6
Reaz Murshed

setIconに電話するだけでは十分ではありませんでした。

その前に、表示をアクティビティロゴからアクティビティアイコンに切り替える必要がありました。

actionBar.setDisplayUseLogoEnabled(false);

アクティビティアイコンとロゴの違いについては、 Androidアイコンとロゴ を参照してください。

0
Eran Friedman

参照するドローアブルをdrawable/の下のres/フォルダーに追加する必要があります。

編集:あなたのAndroidインストールフォルダには、使用するストック画像がたくさんあります。おそらくそこにあります。

0
trevor-e

私はこれを自分の用途に使用しています、そしてそれは私のために働いています。これがすべての助けになることを願っています

actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeAsUpIndicator(R.drawable.icon);
0
Sagar Thakarar

既存の答えは非常に正しいです。ただし、別の方法もあります。最小限のアプローチは、

getActionBar().setIcon(R.drawable.my_icon);

あなたの仕事をすぐに終わらせます。 :)

技術的な詳細:getActionBar()はデフォルトでオブジェクトを返すため、スコープ内のオブジェクトで明示的に受け取ることなく、オブジェクトを直接操作できます。

0
Sankalp Sharma

これを試して

    setSupportActionBar(toolbar);
    if (getSupportActionBar() != null)
    getSupportActionBar().setIcon(R.drawable.your_icon);
0
Mohammed Javad