2011-05-15 80 views
2

我學習的Android和教程,打開他們使用只需使用「setContentView」或「startActivity」?

一個新的屏幕...

startActivity(new Intent("com.rob.minispy.sweet")); 

(在main.java)

...

public class sweet extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.splash); 
    } 

} 

(in sweet.java)

...

最後

<activity android:name=".sweet" 
      android:label="@string/app_name"> 
    <intent-filter> 
     <action android:name="android.intent.action.SWEET" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

(在清單)

現在不僅是,它並沒有真正的工作,使應用程序崩潰,通過

這樣做根本就不是更簡單
setContentView(R.layout.splash); 

from main.java還是有一些缺點呢?

謝謝!

+0

你可以給教程的鏈接,使事情更清晰。無論如何,我會推薦從開發者網站學習android。 – primpap 2011-05-15 17:37:19

+0

sure:http://www.youtube.com/watch?v=ceWhhyQt-MU&feature=related – Roger 2011-05-15 17:39:04

+0

[Android setContentView or Intents?]可能的重複(http://stackoverflow.com/questions/4191997/android-setcontentview-或 - 意圖) – jww 2015-01-01 20:53:24

回答

4

你有2種方法來啓動sweet活動

  1. 變化startActivity(new Intent("com.rob.minispy.sweet"));startActivity(new Intent("android.intent.action.SWEET"));查看更多信息here
  2. startActivity(new Intent(this,sweet.class)); 。這使用表格Intent(Context packageContext, Class<?> cls)。更多信息here
+0

謝謝! 「startActivity(new Intent(this,sweet.class));」成功了! :)但仍然,爲什麼我應該開始一個新的活動,如果我可以簡單地使用setContentView? – Roger 2011-05-15 17:42:37

+0

那麼,你可能需要初始化一些東西時顯示你的佈局(例如數據從數據庫)。所以通過開始一個新的活動,你可以在'onCreate'中實現這個 – ccheneson 2011-05-15 17:58:50

0

是的,最好開始一個新的活動,因爲這樣Android將自動處理從一個活動到另一個活動的轉換。你的應用程序崩潰,因爲你做得不對。意圖應該被創建爲new Intent(this, com.rob.minispy.sweet.class)。你在構造函數中使用一個字符串,它應該是一個動作而不是一個類。

相關問題