簡體   English   中英

Android 2.3.5上的ActionBar和SearchView問題

[英]ActionBar and SearchView problems on the Android 2.3.5

我在我的應用程序中實現了ActionBar以及SearchView小部件。 它在Nexus 7,HTC Sensation等上運行得很好 - 我認為Android版本超過3.0的任何地方。 但它並沒有在Android 2.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!

Oopsie,

保持向后兼容

如果要在應用程序中提供操作欄並與早於3.0的Android版本兼容,則需要在活動的布局中創建操作欄(因為舊版本不提供ActionBar類)。

為了幫助您,Action Bar Compatibility示例應用程序提供了一個API層和操作欄布局,允許您的應用程序使用某些ActionBar API,並通過使用自定義操作欄布局替換傳統標題欄來支持舊版Android。

這是我的問題的答案嗎?

編輯:該示例應用程序是狗屎。

您可以使用http://actionbarsherlock.com/並將支持庫添加到項目中,然后操作欄將在1.6及更高版本上運行

您可以檢查當前的操作系統版本並運行支持的代碼,例如

if(android.os.Build.VERSION.SDK_INT < 11){
   //  use api available only in sdk < 11
}else{
   //  use api available in sdk 11
} 

這是為了通知您,您應該使用Action Bar Sherlock 這是John Watson提供的非常棒的功能/庫。

並參考這個幻燈片共享教程。 它一定會幫到你。

如果您對Action Bar Sherlock有任何疑問,請與我們聯系。

謝謝

你只需要添加android-support-v7-appcompat.jar
然后使用“android.support.v7.widget.SearchView”
http://developer.android.com/reference/android/support/v7/widget/SearchView.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM