金星揽月 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 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn