1

アプリにウィジェットActionBarだけでなく実装もあります。SearchViewNexus 7、HTCSensationなどで問題なく動作します。Androidバージョンが3.0より古い場合はどこでも問題ないと思います。ただし、Android2.3.5を搭載した携帯電話では動作しません。

プログラムが古いデバイスで実行されているときに、アクションバーやその他のサポートされていないものを「表示しない」方法はありますか?

古いデバイスで実行したときに表示されるエラーログは次のとおりです。長さについては申し訳ありませんが、どのビットが役立つのかよくわかりません。

09-27 12:15:03.008: I/dalvikvm(824): Failed resolving Lcom/example/stroke/handling/MainActivity; interface 407 'Landroid/widget/SearchView$OnQueryTextListener;'
09-27 12:15:03.008: W/dalvikvm(824): Link of class 'Lcom/example/stroke/handling/MainActivity;' failed
09-27 12:15:03.008: D/AndroidRuntime(824): Shutting down VM
09-27 12:15:03.008: W/dalvikvm(824): threadid=1: thread exiting with uncaught exception (group=0x400205a0)
09-27 12:15:03.018: E/AndroidRuntime(824): FATAL EXCEPTION: main
09-27 12:15:03.018: E/AndroidRuntime(824): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.stroke.handling/com.example.stroke.handling.MainActivity}: java.lang.ClassNotFoundException: com.example.stroke.handling.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.stroke.handling-1.apk]
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1743)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread.access$1500(ActivityThread.java:132)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.os.Looper.loop(Looper.java:150)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread.main(ActivityThread.java:4277)
09-27 12:15:03.018: E/AndroidRuntime(824):  at java.lang.reflect.Method.invokeNative(Native Method)
09-27 12:15:03.018: E/AndroidRuntime(824):  at java.lang.reflect.Method.invoke(Method.java:507)
09-27 12:15:03.018: E/AndroidRuntime(824):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-27 12:15:03.018: E/AndroidRuntime(824):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-27 12:15:03.018: E/AndroidRuntime(824):  at dalvik.system.NativeStart.main(Native Method)
09-27 12:15:03.018: E/AndroidRuntime(824): Caused by: java.lang.ClassNotFoundException: com.example.stroke.handling.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.example.stroke.handling-1.apk]
09-27 12:15:03.018: E/AndroidRuntime(824):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
09-27 12:15:03.018: E/AndroidRuntime(824):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
09-27 12:15:03.018: E/AndroidRuntime(824):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
09-27 12:15:03.018: E/AndroidRuntime(824):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
09-27 12:15:03.018: E/AndroidRuntime(824):  ... 11 more

PS ActionBarSherlockを使いたくない!

4

5 に答える 5

1

おっと、

下位互換性を維持

アプリケーションにアクションバーを提供し、3.0より古いバージョンのAndroidとの互換性を維持したい場合は、アクティビティのレイアウトにアクションバーを作成する必要があります(ActionBarクラスは古いバージョンでは使用できないため)。

これを支援するために、アクションバー互換性サンプルアプリはAPIレイヤーとアクションバーレイアウトを提供します。これにより、アプリでActionBar APIの一部を使用でき、従来のタイトルバーをカスタムアクションバーレイアウトに置き換えることで古いバージョンのAndroidをサポートできます。

それは私の質問への答えですか?

編集:そのサンプルアプリはたわごとです。

于 2012-09-27T11:28:15.547 に答える
1

http://actionbarsherlock.com/を使用 して、プロジェクトにサポートライブラリを追加すると、アクションバーは1.6以降で機能します。

于 2012-09-27T11:41:33.417 に答える
1

現在のOSバージョンを確認し、サポートされているコードを実行できます。

if(android.os.Build.VERSION.SDK_INT < 11){
   //  use api available only in sdk < 11
}else{
   //  use api available in sdk 11
} 
于 2012-09-27T12:30:47.510 に答える
0

これは、同じようにアクションバーシャーロックを使用する必要があることを通知するためのものです。これは、ジョン・ワトソンによって提供された非常に素晴らしい機能/ライブラリです。

そして、このスライド共有チュートリアルを参照してください。それは間違いなくあなたを助けます。

アクションバーシャーロックに関して他にご不明な点がありましたらお知らせください。

ありがとう

于 2013-03-22T10:14:43.170 に答える
0

追加する必要がありますandroid-support-v7-appcompat.jar
次に、「android.support.v7.widget.SearchView」を使用し
ますhttp://developer.android.com/reference/android/support/v7/widget/SearchView.html

于 2014-10-14T03:25:30.613 に答える