金星揽月 2020-05-17 21:49 采纳率: 100%
浏览 990
已采纳

android:从Activity跳转到另一个Activity的Fragment的时候程序报错。

以下是报错信息:

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.whut.imageencryptionapp, PID: 31941

java.lang.RuntimeException: 
    **Unable to instantiate activity ComponentInfo****{com.whut.imageencryptionapp/com.whut.imageencryptionapp.ui.ImageHandleActivity}: **java.lang.ClassCastExceptio**n: com.whut.imageencryptionapp.ui.ImageHandleActivity **cannot be cast to android.app.Activity       **

    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3678)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:213)
    at android.app.ActivityThread.main(ActivityThread.java:8147)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101)
 Caused by: java.lang.ClassCastException: com.whut.imageencryptionapp.ui.ImageHandleActivity cannot be cast to android.app.Activity
    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
    at android.support.v4.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:43)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1257)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3663)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3939) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:91) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:149) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:103) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2373) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:213) 
    at android.app.ActivityThread.main(ActivityThread.java:8147) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1101) 

DeImagePickActivity相关代码如下:

            case R.id.iv_image_show_activity_back:
                /*
                Intent intent = new Intent(this, ImageHandleActivity.class);
                startActivity(intent);

                FragmentManager fragmentManager;
                Fragment fragment = new ImageHandleActivity();
                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.rl_fragment1, fragment).commit();

                fragmentTransaction = fragmentManager.beginTransaction();
                ImageHandleActivity imageHandleActivity = new ImageHandleActivity();
                fragmentTransaction.replace(R.id.ll_de, imageHandleActivity).commit();

                 */

                ImageHandleActivity imageHandleActivity = new ImageHandleActivity();
                FragmentManager fragmentManager;
                fragmentManager = getSupportFragmentManager();
                fragmentManager.beginTransaction().replace(R.id.rl_fragment1,imageHandleActivity).commit();

                Intent intent = new Intent(this,ImageHandleActivity.class);
                startActivity(intent);

注释中都是我尝试过的方法,但是还是会出现异常。
我要从DeImagePickActivity跳转到ImageHandleActivity,其中ImageHandleActivity继承了Fragment,他的Activity是MainActivity。
感谢解答!

  • 写回答

1条回答 默认 最新

  • 有头发的猿 2020-05-18 11:41
    关注

    startActivity(intent); 中的intent 传入的class是Activity,而你的ImageHandleActivity 是Fragment,所以才会报错ClassCastException类型转换失败,如果你iv_image_show_activity_back 只是一个单纯的返回,只要保证上层activity不销毁,那么finish当前activity就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据