2013-01-14 60 views
0

我怎樣才能實現一個文件瀏覽器,而不用exteniding listactivity類?我試圖在我的應用程序中添加一個選項來選擇文件瀏覽器來選擇自己的文件來使用,而不是默認的。我做了一個按鈕,移動到文件瀏覽器列表,但是當我使用代碼setListAdapter(ArrayAdapter);它說我需要擴展ListActivity。當我這樣做時,我完全運行應用程序時遇到問題。任何想法我做錯了什麼?我如何不必擴展列表活動,因爲我的應用程序不僅僅是一個列表,它只需要使用列表。謝謝!如何實現需要擴展活動的文件瀏覽器代碼?

UPDATE-logcat的

01-15 09:39:22.399: D/AndroidRuntime(317): Shutting down VM 
01-15 09:39:22.409: W/dalvikvm(317): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
01-15 09:39:22.409: E/AndroidRuntime(317): Uncaught handler: thread main exiting due to uncaught exception 
01-15 09:39:22.429: E/AndroidRuntime(317): java.lang.IllegalStateException: Could not execute method of the activity 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.View$1.onClick(View.java:2031) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.View.performClick(View.java:2364) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.View.onTouchEvent(View.java:4179) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.widget.TextView.onTouchEvent(TextView.java:6541) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.View.dispatchTouchEvent(View.java:3709) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884) 
01-15 09:39:22.429: E/AndroidRuntime(317): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659) 
01-15 09:39:22.429: E/AndroidRuntime(317): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.app.Activity.dispatchTouchEvent(Activity.java:2061) 
01-15 09:39:22.429: E/AndroidRuntime(317): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.ViewRoot.handleMessage(ViewRoot.java:1691) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.os.Looper.loop(Looper.java:123) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.app.ActivityThread.main(ActivityThread.java:4363) 
01-15 09:39:22.429: E/AndroidRuntime(317): at java.lang.reflect.Method.invokeNative(Native Method) 
01-15 09:39:22.429: E/AndroidRuntime(317): at java.lang.reflect.Method.invoke(Method.java:521) 
01-15 09:39:22.429: E/AndroidRuntime(317): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
01-15 09:39:22.429: E/AndroidRuntime(317): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
01-15 09:39:22.429: E/AndroidRuntime(317): at dalvik.system.NativeStart.main(Native Method) 
01-15 09:39:22.429: E/AndroidRuntime(317): Caused by: java.lang.reflect.InvocationTargetException 
01-15 09:39:22.429: E/AndroidRuntime(317): at phil.H.com.HIITActivity.changesong(HIITActivity.java:132) 
01-15 09:39:22.429: E/AndroidRuntime(317): at java.lang.reflect.Method.invokeNative(Native Method) 
01-15 09:39:22.429: E/AndroidRuntime(317): at java.lang.reflect.Method.invoke(Method.java:521) 
01-15 09:39:22.429: E/AndroidRuntime(317): at android.view.View$1.onClick(View.java:2026) 
01-15 09:39:22.429: E/AndroidRuntime(317): ... 21 more 
01-15 09:39:22.429: E/AndroidRuntime(317): Caused by: java.lang.NullPointerException 
01-15 09:39:22.429: E/AndroidRuntime(317): at phil.H.com.HIITActivity.getDir(HIITActivity.java:216) 
01-15 09:39:22.429: E/AndroidRuntime(317): ... 25 more 
01-15 09:39:22.509: I/Process(59): Sending signal. PID: 317 SIG: 3 
01-15 09:39:22.509: I/dalvikvm(317): threadid=7: reacting to signal 3 
01-15 09:39:22.609: I/dalvikvm(317): Wrote stack trace to '/data/anr/traces.txt' 
01-15 09:44:22.559: I/Process(317): Sending signal. PID: 317 SIG: 9 
01-15 09:44:22.659: E/JavaBinder(59): !!! FAILED BINDER TRANSACTION !!! 
01-15 09:44:22.680: I/WindowManager(59): WIN DEATH: Window{44debcc8 phil.H.com/phil.H.com.HIITActivity paused=false} 
01-15 09:44:22.680: I/ActivityManager(59): Process phil.H.com (pid 317) has died. 
01-15 09:44:22.939: I/UsageStats(59): Unexpected resume of com.android.launcher while already resumed in phil.H.com 
01-15 09:44:23.559: W/InputManagerService(59): Got RemoteException sending setActive(false) notification to pid 317 uid 10029 
+0

我相信,你可以添加ListView,你可以嘗試setAdapter的ListView。 –

+0

你是什麼意思「當我這樣做,我有一個問題完全運行應用程序」?一個'ListActivity'的行爲就像任何其他'Activity'一樣,可以包含你想要的任何佈局。唯一的區別是它需要你的佈局在'android:id = @ android:id/list'中包含'ListView',並且內置了用於填充'ListView'的方法。 – Ole

+0

它說它已經意外關閉了 –

回答

2

您不必使用ListActivity。只要您使用正確的方法,就必須在您使用的佈局中有一個ListView對象。

建立一個你膨脹的XML文件中ListView,然後取,

ListView myListView = (ListView) findViewById(R.id.my_list); 

然後,您可以設置它的適配器:

myListView.setAdapter(ArrayAdapter); 

的文檔有一個適度超前ListViewan awesome tutorial實現。

+0

是的,但是我的活動在它的主佈局中沒有列表視圖對象。我需要它進入二次佈局。它被創建,但是當擴展listactivity時,它不會啓動我的應用程序。當我嘗試它說應用程序意外停止。 –

+0

正如我所說的,你不必使用'ListActivity'。添加一個'ListView'到任何想要擁有該列表的佈局,然後用適配器中的項目填充它。 – Eric

+0

是的,我嘗試了你的建議實現,但是當我這樣做時出現錯誤。它意外停止。我會盡力讓我的logcat上來,也許有人知道它的意思。 –

相關問題