2016-08-02 50 views
-1

我有一個通知管理器在一個片段,它工作正常,直到你點擊它,它是假設打開Fragment_02類,無論它被點擊(是它從主屏幕,另一個片段或活動)片段不能轉換爲通知android.app.activity點擊

下面

代碼:

  private void pushNotification(int Request_ContactIntTotal) { 

      NotificationManager NM = (NotificationManager) getActivity().getSystemService(Context.NOTIFICATION_SERVICE); 

      if (Request_ContactIntTotal == 0) 
      { 
       NM.cancelAll(); 
      } 
      else 
      { 
        NotificationCompat.Builder builder = new NotificationCompat.Builder(getActivity()); 
        builder.setSmallIcon(R.drawable.ic_launcher); 
        builder.setContentTitle("Message Notification"); 
        uilder.setContentText(Request_ContactIntTotal + " unread messages"); 
        Intent intent = new Intent(getActivity(),Fragment_02.class); 
        TaskStackBuilder stackBuilder = TaskStackBuilder.create(getActivity()); 
        stackBuilder.addParentStack(Fragment_02.class); 
        stackBuilder.addNextIntent(intent); 
        PendingIntent pendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
        builder.setContentIntent(pendingIntent); 
        NM.notify(0,builder.build()); 
      } 
     } 

通知點擊給出錯誤:Fragment_02不能轉換到Android應用活動

的logcat:

08-01 21:04:49.499: E/AndroidRuntime(3596): FATAL EXCEPTION: main 
08-01 21:04:49.499: E/AndroidRuntime(3596): Process: com.mypackage.myapp, PID: 3596 
08-01 21:04:49.499: E/AndroidRuntime(3596): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mypackage.myapp/com.mypackage.myapp.Fragment_02}: java.lang.ClassCastException: com.mypackage.myapp.Fragment_02 cannot be cast to android.app.Activity 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread.access$800(ActivityThread.java:144) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.os.Handler.dispatchMessage(Handler.java:102) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.os.Looper.loop(Looper.java:135) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread.main(ActivityThread.java:5221) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at java.lang.reflect.Method.invoke(Native Method) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at java.lang.reflect.Method.invoke(Method.java:372) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
08-01 21:04:49.499: E/AndroidRuntime(3596): Caused by: java.lang.ClassCastException: com.mypackage.myapp.Fragment_02 cannot be cast to android.app.Activity 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.Instrumentation.newActivity(Instrumentation.java:1065) 
08-01 21:04:49.499: E/AndroidRuntime(3596):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2199) 
+0

更新您的問題將完成LogCat。 – Sufian

+0

[Fragment無法轉換爲android.app.activity]的可能重複(http://stackoverflow.com/questions/22705146/fragment-cannot-be-cast-to-an-android-app-activity) – Sufian

回答

0

它是一個片段。所以你不能打開它,你寫

嘗試:

FragmentManager fragmentManager = getFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
Fragment_02 fragment = new Fragment_02(); 
fragmentTransaction.add(R.id.fragment_container, fragment); 
fragmentTransaction.commit(); 

它會幫助你。

0

docs表示addParentStack可以取3個不同的參數不包含片段。我的建議是調用addParentStack,其中包含活動類和活動中的開始片段。

相關問題