2012-07-30 73 views
0

我正在爲Android做一個遊戲,但我從來沒有真正找到改變活動或內容視圖的好方法。我現在有一個主菜單活動,其內容視圖接收MotionEvent s並將它們分派到我的自定義按鈕。另一個Activity有一個簡單的contentView,它只用一種顏色來繪製屏幕。所有contentView s具有相同的基類和活動2源自活動1.在Android中改變活動

問題是,如果嘗試更改活動,應用程序只會崩潰。大約需要20秒,然後出現錯誤消息,說應用程序沒有響應。 在logcat中,還那裏有一個消息keyDispatchingTimedOut sending to activity2 以下是活動更改代碼:

public void changeActivity() { 
    Log.d("changing", "activity"); 
    Intent i=new Intent(this, Activity_Level.class); 
    startActivity(i); 
} 

任何想法?

+1

Post crash message。 – kosa 2012-07-30 14:46:44

回答

0

在沒有看到logcat的消息,我敢打賭,你忘了添加在AndroidManifest.xml

0

我感覺到你沒有所有活動添加到manifest.xml文件的活動。嘗試添加所有的活動,並給它一個運行。

+0

我沒有忘記添加在我的XML活動:<活動 機器人:名字=「ACTIVITY_LEVEL。」 機器人:標籤=‘@字符串/ APP_NAME’> – user1563232 2012-07-30 15:00:10

+0

然後張貼堆棧跟蹤,以把事情說清楚 – overbet13 2012-07-30 15:00:44

1

你必須使用你的活動範圍內的方法

Intent i=new Intent(Youar_Activity_Name.this, Activity_Level.class); 
        ^^^^^^^^^^^^^^^^^^^^^^ 

使用上面的代碼中你changeActivity()方法。

+0

注意如果'changeActivity()'方法在'Activity'範圍內,user1563232提供的代碼不需要這樣的修復。 – overbet13 2012-07-30 15:03:48

1

如果應用程序沒有響應,這是因爲您在UI線程上執行了長時間的操作。也許在調用這個函數之後,你會繼續做其他事情嗎?

如果像人們所說的那樣活動沒有打開(並且您可以通過寫入onCreate方法內的日誌來檢查它),請檢查清單。在任何情況下,如果您想要更好地控制活動,您可以檢查可能用於意圖的標誌,並且還可以使用片段(如果可能),就像Google的建議一樣。

+0

處理我的輸入事件後立即打印oncreate方法中的日誌。在永恆和幾個錯誤消息之後,其他contentview是可見的。 – user1563232 2012-07-30 15:10:49

+0

你將不得不展示一些活動的代碼。 – 2012-07-30 15:24:53

+0

繼承人活動:http://pastebin.com/eQjefaWk和其他活動切換到:http://pastebin.com/KCWkKpgg – user1563232 2012-07-30 15:44:57