android - 通过自定义Dialog删除ExpandableListView的child item时报错ClassCastException
PHPz
PHPz 2017-04-17 14:35:13
[Android讨论组]
PHPz
PHPz

学习是最好的投资!

全部回复(1)
迷茫

原因很明朗,虽然我没有你的完整代码,但是我做了个小测试,得到了类似的crash:

10-26 21:00:03.474: E/AndroidRuntime(12410): java.lang.ClassCastException: me.li2.android.criminalintent.CrimePagerActivity cannot be cast to me.li2.android.criminalintent.CrimeFragment$Callbacks

原因是你传入的context,也就是SumFileActivity,并没有实现你定义的IOnClickListener. 所以无法强制转型。
既然你在Fragment中实现了接口,那我们可以这样做,注册一个接口,替代传入context的办法:

// MyDialog.java
    public void setOnClickListener(IOnClickListener l) {
        this.iOnclicklistener = l;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.delete:
        if (this.iOnclicklistener != null) {
            this.iOnclicklistener.deleteOnClick();
        }

然后还需要做的事件就是,在创建MyDialog的Fragment里面调用setOnClickListener.

PS: 你可以看下这个问题【什么是回调函数?一个类中的回调函数是什么作用】中我的答案,可能会对你理解 “如何处理点击事件的回调” 有所帮助。
PS+: crash log,我觉得贴文本比图好,经过markdown排版后也会好看,同时也方便答题者引用其中的内容。代码也是,你可以加上注释,指明崩溃在哪行。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号