0

アクションバーの必要性が画像に表示されるアプリケーションを開発しています:

ここに画像の説明を入力

テキスト付きの戻る矢印を適用し、ドローアブルからカスタム検索アイコンを適用する必要があります。私の API レベルは最小 13 から最大 21 です。私はGoogleで検索し、style.xmlからこれを次のように行うことがわかりました:

<style name="Theme.MyFancyTheme" parent="android:Theme.Holo">
<item name="android:homeAsUpIndicator">@drawable/my_fancy_up_indicator</item>
</style>

しかし、うまくいきません。

私も試しました:

getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeAsUpIndicator(R.drawable.back_button);

これにより、次のようなエラーが発生します。

04-07 13:40:49.465: E/ACRA(20136): com.demo.example fatal error : android.app.ActionBar.setHomeAsUpIndicator
04-07 13:40:49.465: E/ACRA(20136): java.lang.NoSuchMethodError: android.app.ActionBar.setHomeAsUpIndicator
04-07 13:40:49.465: E/ACRA(20136):  at com.demo.example.TabbarActivity.activitySearchView(TabbarActivity.java:225)
04-07 13:40:49.465: E/ACRA(20136):  at com.demo.example.TabbarActivity.onCreate(TabbarActivity.java:157)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.Activity.performCreate(Activity.java:5206)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2074)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.ActivityThread.access$700(ActivityThread.java:140)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237)
04-07 13:40:49.465: E/ACRA(20136):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-07 13:40:49.465: E/ACRA(20136):  at android.os.Looper.loop(Looper.java:137)
04-07 13:40:49.465: E/ACRA(20136):  at android.app.ActivityThread.main(ActivityThread.java:4921)
04-07 13:40:49.465: E/ACRA(20136):  at java.lang.reflect.Method.invokeNative(Native Method)
04-07 13:40:49.465: E/ACRA(20136):  at java.lang.reflect.Method.invoke(Method.java:511)
04-07 13:40:49.465: E/ACRA(20136):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
04-07 13:40:49.465: E/ACRA(20136):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
04-07 13:40:49.465: E/ACRA(20136):  at dalvik.system.NativeStart.main(Native Method)

私が行方不明または間違っていること。私の仕事を達成するために何をすべきか教えてください。

4

2 に答える 2

1

AppCompat を使用することをお勧めしますが、それでも使用したくない場合は、アクションバーでカスタム ビューを設定してください。これは、テキストでカスタム フォントを使用している場合に役立つ場合があります。

詳細については、このリファレンスを参照してください。

このような、

LinearLayout customView = (LinearLayout) LayoutInflater.from(this).inflate(R.layout.custom_actionbar_layout, null);
ActionBar.LayoutParams params = new ActionBar.LayoutParams(ActionBar.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.MATCH_PARENT, Gravity.CENTER_VERTICAL);
getActionBar().setCustomView(customView, params);

それがあなたを助けることを願っています!

于 2015-04-07T08:58:06.253 に答える
0

setHomeAsUpIndicatorは API レベル 18 で導入されました。クラッシュが発生しているデバイスには、18 より古いバージョンの Android が搭載されています。これを克服するには、appcompatを使用できます。

于 2015-04-07T08:23:46.000 に答える