2011-04-17 50 views
0

親愛的所有; 我對佈局和活動的事情感到困惑,我在窗體應用程序中使用了窗體和類,但是在這裏看起來有點不同,所以我不知道什麼時候會使用和佈局,以及何時必須切換活動...我有任何建立示例應用程序的方式,我決定爲每個活動進行佈局。 我想在活動之間切換。所以我寫的代碼在AndroidManifest.xml轉換活動

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".activity" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.content.intent.ActionBootCompleted" /> 
      <category android:name="android.content.intent.CategoryDefault" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".activity1" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN2" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".home" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN2" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

,然後在每一個onclickListener:

Button b1=(Button)findViewById(R.id.button1); 
    b1.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      //alert.show(); 
     // setContentView(R.layout.menu); 
     String packageName = activity1.class.getPackage().getName(); 

     String packageAndClassName = activity1.class.getName(); 
     Intent intent = new Intent().setClassName(packageName,packageAndClassName); 
     startActivity(intent); 

     } 
     }); 

所以它是活動之間的切換首頁,但是當我想從家裏切換到actvity1返回我回到活動...

那麼是什麼問題?

回答

2

這段代碼應該更好地啓動您的activity1。您必須將示例中的MyActivity重命名爲託管代碼段的活動類的名稱(或提供備用上下文變量)。

 Intent intent = new Intent(MyActivity.this, activity1.class); 
     startActivity(intent); 
+0

打倒我吧。說得好。 – 2011-04-17 06:16:15

1

從AndroidManifest.xml中我們可以看到,activity是你的主要活動,因此

Intent intent = new Intent().setClassName(packageName,packageAndClassName); 

將切換到acticity

嘗試使用

Intent intent = new Intent(HomeActivity.this, activity1.class); 

更多:

public Intent (Context packageContext, Class<?> cls) 

創建特定組件的意圖。所有其他字段(動作,數據,類型,類)都爲空,儘管稍後可以使用顯式調用修改它們。這提供了一種方便的方法來創建一個旨在執行硬編碼類名的意圖,而不是依賴系統爲您找到合適的類; reference