2012-02-12 30 views
0

後自動啓動新的活動我還是很新的這一點,我的工作我的第一個應用程序。我遇到的問題是這個。明確意圖到閃屏

我有工作正常啓動畫面,但我不斷收到一個錯誤,當它進入切換到新的活動。我知道問題出在意圖,但我不知道它是什麼或如何解決它。我的代碼是:

splashTread = new Thread() { 
       @Override 
       public void run() { 
        try { 
         synchronized(this){ 

          //wait 5 sec 
          wait(_splashTime); 
         } 

        } catch(InterruptedException e) {} 
        finally { 
         finish(); 

         //start a new activity 

           Intent intent = new Intent(MAIN.this, Home.class); 
           startActivity(intent); 

         stop(); 

和貓日誌:

02-12 13:01:46.009: D/AndroidRuntime(753): Shutting down VM 
02-12 13:01:46.009: W/dalvikvm(753): threadid=1: thread exiting with uncaught exception (group=0x4001e560) 
02-12 13:01:46.049: E/AndroidRuntime(753): FATAL EXCEPTION: main 
02-12 13:01:46.049: E/AndroidRuntime(753): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.madonk.LAFEST/com.madonk.LAFEST.Home}: java.lang.ClassCastException: android.widget.LinearLayout 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1702) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1722) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread.access$1500(ActivityThread.java:124) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:974) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.os.Looper.loop(Looper.java:130) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread.main(ActivityThread.java:3821) 
02-12 13:01:46.049: E/AndroidRuntime(753): at java.lang.reflect.Method.invokeNative(Native Method) 
02-12 13:01:46.049: E/AndroidRuntime(753): at java.lang.reflect.Method.invoke(Method.java:507) 
02-12 13:01:46.049: E/AndroidRuntime(753): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-12 13:01:46.049: E/AndroidRuntime(753): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-12 13:01:46.049: E/AndroidRuntime(753): at dalvik.system.NativeStart.main(Native Method) 
02-12 13:01:46.049: E/AndroidRuntime(753): Caused by: java.lang.ClassCastException: android.widget.LinearLayout 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ListActivity.onContentChanged(ListActivity.java:241) 
02-12 13:01:46.049: E/AndroidRuntime(753): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:256) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.Activity.setContentView(Activity.java:1716) 
02-12 13:01:46.049: E/AndroidRuntime(753): at com.madonk.LAFEST.Home.onCreate(Home.java:11) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-12 13:01:46.049: E/AndroidRuntime(753): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1666) 
02-12 13:01:46.049: E/AndroidRuntime(753): ... 11 more 

首頁活動

package com.madonk.LAFEST; 

import android.app.ListActivity; 
import android.os.Bundle; 

public class Home extends ListActivity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home); 
    } 
} 
+0

好像你家的活動是麻煩製造者。從Home.class發佈代碼plz – ezcoding 2012-02-12 18:08:19

+0

它不能成爲家庭活動,因爲我沒有改變它。它調用了xml文件,就是這樣。 – Madonk 2012-02-12 18:23:37

+0

這很奇怪。導致此行在這裏說不同: 「02-12 13:01:46.0​​49:E/AndroidRuntime(753):java.lang.RuntimeException:無法啓動活動ComponentInfo {com.madonk.LAFEST/com.madonk.LAFEST.Home }:java.lang.ClassCastException:android.widget.LinearLayout「 – ezcoding 2012-02-12 18:32:25

回答

1

似乎您使用ListActivity。 ListActivity的document

您可以通過的setContentView()中的onCreate設置自己的看法佈局 自定義屏幕布局()。要做到這一點,你自己的視圖必須 包含id爲一個ListView對象「@android:ID /列表」(或列表,如果 它的代碼)

檢查了RES /佈局/ home.xml在你的項目。根據你的異常我相信你把這個id放在你的LinearLayout中,所以將你的「@android:id/list」從LinearLayout移動到ListView。或發佈你的home.xml。

+0

那麼它應該說什麼? – Madonk 2012-02-12 17:35:29

+0

好的,我更新了我的帖子 – DouO 2012-02-12 17:58:36

0

將其更改爲:

Intent intent = new Intent(getBaseContext(), Home.class); 
            startActivity(intent); 

文檔說:

意圖(上下文packageContext,類CLS)創建一個特定 成分的意圖。

你錯過了把你的背景下進入的意圖。

你可以閱讀更多關於意圖在這裏:

http://developer.android.com/reference/android/content/Intent.html

這裏:

http://developer.android.com/guide/topics/fundamentals/activities.html

這裏是有關intent一個很好的教程:

http://www.vogella.de/articles/AndroidIntent/article.html

你真的應該閱讀本教程。這對我幫助很大!

編輯:要調用完成()和stop()。調用finish()會調用你的onDestroy()。當我調用finish()後調用stop()時,我不確定會發生什麼。你應該刪除你的呼叫stop()。

+0

它的現在給我一個錯誤,它說:構造函數Intent(new Thread(){},類)未定義 – Madonk 2012-02-12 17:22:10

+0

現在看代碼:) – ezcoding 2012-02-12 17:57:18

+0

hmmm,我仍然得到相同的錯誤。 – Madonk 2012-02-12 18:01:24

0

基於這兩條線:

02-12 13:01:46.049: E/AndroidRuntime(753): Caused by: java.lang.ClassCastException: android.widget.LinearLayout 02-12 
13:01:46.049: E/AndroidRuntime(753): at android.app.ListActivity.onContentChanged(ListActivity.java:241) 

我願意打賭,R.layout.home是LinearLayout中,而不是一個ListActivity。

同時,該行明確指出在setContentView電話:

at com.madonk.LAFEST.Home.onCreate(Home.java:11) 
-1

試試這個: -

Intent intent = new Intent(getActivity(), Home.class); 
startActivity(intent);