2012-07-14 93 views
0

我目前在我的應用程序中有一個名爲RaceActivity的活動,該活動執行setContentView()以顯示錶面視圖。 在我的表面視圖中,我正在檢查用戶是否贏得了比賽,以及他/她有何時想切換到顯示簡單比賽結束消息的另一個視圖。我曾嘗試使用:活動之間的Android切換

Intent intent = new Intent();   
intent.setClass(getContext(), RaceActivity.class); 
intent.putExtra("code", 3); 
((Activity)getContext()).startActivityForResult(intent, 5); 

但這不適用於我。它顯示了一秒鐘的新視圖,然後屏幕變黑,並繼續執行前一個表面視圖上的代碼(我有一個日誌語句,以便我可以看到它在做什麼)。

如何切換到完成視圖並使其停止以前的視圖?

+0

你是什麼意思按'顯示一秒鐘的新視圖然後屏幕變黑'?你在第二個活動中有什麼叫做'finish()'的方法嗎?一旦顯示新的活動,它應該保持顯示,除非用戶關閉它,或者通過「完成」以編程方式關閉它。如果您在新活動的onCreate或onResume方法中有異常,它也可能會關閉。 – azgolfer 2012-07-14 04:27:26

+0

我沒有完成()或異常它只是全黑,而前一個表面視圖繼續將消息打印到屏幕 – user1124632 2012-07-14 04:45:34

回答

0

要開始另一項活動,並在activty留下來,你要使用startActivity(意向意圖)

試試這個

Intent intent = new Intent();   
intent.setClass(getContext(), RaceActivity.class); 
intent.putExtra("code", 3); 
((Activity)getContext()).startActivity(intent); 
+0

它仍然繼續前面的表面視圖中的代碼,最終導致應用程序崩潰 – user1124632 2012-07-14 04:43:35

+0

你可以在startActivity之後調用finish()。 – 2012-07-15 04:26:13

0

嘗試這樣

  Intent intent=new Intent(this,newclassname.class); 
      intent.putExtra("code", 3); 
      startActivityForResult(intent,0); 
+0

我不能這樣做,我在表面視圖內調用這些函數,並且Intent不會將它作爲其第一個參數 – user1124632 2012-07-14 04:48:22

+0

在我們的表面視圖中定義上下文,如下所示:Context c;並且按照以下方式進行:Intent intent = new Intent(c.getContext(),newclassname.class); intent.putExtra(「code」,3); c.startActivity(); – Aamirkhan 2012-07-14 05:34:44

+0

這基本上是我在上面做的 – user1124632 2012-07-14 22:15:55