2017-08-17 89 views
0

因此,我有一個菜單,有幾張圖片和一個onClick方法,它打開一個新的頁面。這適用於除一個之外的所有菜單項。該文件的寫法與其他文件完全相同,但當點擊菜單項時,會出現一個空白的新頁面,並顯示正確的標題,但顯然不會調用新活動的onCreate方法。android:活動將不會啓動

也沒有錯誤信息。

的代碼,其中Activitys啓動:

public void onClick(View v) { 

    Intent intent = null; 
    Context context = v.getContext(); 

    switch(position) { 
     case 0: 
      intent = new Intent(context, BooksActivity.class);      
      break; 
     case 1: 
      intent = new Intent(context, GamesActivity.class); 
      break; 
     case 2: 
      intent = new Intent(context, MusicActivity.class); 
      break; 
     case 3: 
      intent = new Intent(context, FilesActivity.class); 
      break; 
     case 4: 
      intent = new Intent(context, VideosActivity.class); 
      break; 
    } 
    context.startActivity(intent);    
} 

的工作原理是對每個活動,但FilesActivity魅力。在FilesActivity.onCreate方法中,我打印日誌:

Log.d(TAG, "initialized"); 

但該日誌從不顯示。

任何想法這裏發生了什麼?

編輯: 所有活動都添加到清單以同樣的方式:

<activity 
    android:name=".MusicActivity" 
    android:configChanges="orientation|keyboardHidden|screenSize" 
    android:label="@string/title_activity_music" 
    android:parentActivityName=".MainActivity" 
    android:theme="@style/FullscreenTheme"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.wilzek.hoerstift.MainActivity" /> 
</activity> 
<activity 
    android:name=".FilesActivity" 
    android:configChanges="orientation|keyboardHidden|screenSize" 
    android:label="@string/title_activity_files" 
    android:parentActivityName=".MainActivity" 
    android:theme="@style/FullscreenTheme"> 
    <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.wilzek.hoerstift.MainActivity" /> 
</activity> 

編輯: Files.Activity的onCreate:

public void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) { 
    super.onCreate(savedInstanceState, persistentState); 
    setContentView(R.layout.activity_files); 
    Log.e(TAG, "INITIALIZED"); 

    listView = (ListView)findViewById(R.id.files_list); 
    listView.setOnItemClickListener(onItemClickListener); 

    try { 
     files = Arrays.asList(USBCommunicationManager.getRootDir().listFiles()); 
     Log.e(TAG, "Root Dateien: " + files.size()); 
    } catch (Exception e) { 
     Log.e(TAG, "Root Dateien konnten nicht gefetcht werden. Yay denglish."); 
    } 

    filesAdapter = new FilesAdapter(this, files); 
    listView.setAdapter(filesAdapter); 
} 
+0

您是否已將活動添加到AndroidManifest.xml? –

+0

請顯示清單和活動代碼 –

+0

在這裏添加您的文件活動在這裏創建 –

回答

3

在FilesActivity覆蓋

protected void onCreate(Bundle savedInstanceState); 

而不是

protected void onCreate(Bundle savedInstanceState, @Nullable PersistableBundle persistentState); 
+0

謝謝你,先生,就是這樣。 對這兩個參數的解釋也將得到高度讚賞。 – murkr

+0

我從來沒有使用它,但這裏是文檔:https://developer.android.com/reference/android/app/Activity.html#onCreate(android.os.Bundle,%20android.os.PersistableBundle) – Juan