Java 尽管在正确的类中,Android仍接收classcastexception
我有一个活动,其中一个viewpager包含2个片段,每个片段中都包含一个列表,从这个列表中可以按下一个按钮,在viewpager中创建一个新片段,这可以正常工作,直到我创建一个新活动并关闭它,在新活动关闭后,我返回到前一个活动,按下按钮再次创建一个新片段,现在给出一个classcastexception,几乎就好像关闭的活动仍然打开,但它不是,我已经尝试搜索这个问题,但找不到任何其他人遇到的例子,这让我想知道这是怎么发生的,我会在下面发布一些代码示例,任何帮助都会有很大帮助,谢谢 单击ListAdapter中的侦听器:Java 尽管在正确的类中,Android仍接收classcastexception,java,android,android-fragments,android-activity,classcastexception,Java,Android,Android Fragments,Android Activity,Classcastexception,我有一个活动,其中一个viewpager包含2个片段,每个片段中都包含一个列表,从这个列表中可以按下一个按钮,在viewpager中创建一个新片段,这可以正常工作,直到我创建一个新活动并关闭它,在新活动关闭后,我返回到前一个活动,按下按钮再次创建一个新片段,现在给出一个classcastexception,几乎就好像关闭的活动仍然打开,但它不是,我已经尝试搜索这个问题,但找不到任何其他人遇到的例子,这让我想知道这是怎么发生的,我会在下面发布一些代码示例,任何帮助都会有很大帮助,谢谢 单击List
holder.rlStatusContainer.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//add new comment fragment and set page
try {
((HomeFragmentActivity) activity).addCommentFragment(data.get(finalPosition));
} catch (Exception e) {
e.printStackTrace();
}
}
});
活动中的方法:
public void addCommentFragment(ArrayList<Object> fragmentExtras) {
list.add(NavigationFragment.newInstance(9, getApplicationContext(), this, fragmentExtras));
adapter.notifyDataSetChanged();
pager.setCurrentItem(list.size());
}
你确定你在HomeFragmentActivity中吗?按下按钮时,HomeFragmentActivity是唯一打开的活动,这是所有这一切最令人费解的地方,我目前正试图找到一种方法来显示当前类名以获取更多数据。你可以使用getClass().getSimpleName()当ListAdapter中的activity属性是活动活动时,是否确实没有执行导致该属性被NewPostActivity覆盖的操作?如错误消息所示,当前活动显然是NewPostActivity。与其试图找出原因,不如确定NewPostActivity是在哪里创建/输入的,或者为什么没有按预期完成。
12-13 13:37:50.177 17262-17262/test.test.com.test E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: test.test.com.test, PID: 17262
java.lang.ClassCastException: test.test.com.test.activities.NewPostActivity cannot be cast to test.test.com.test.activities.HomeFragmentActivity
at test.test.com.test.adapters.ListHomeAdapter$4.onClick(ListHomeAdapter.java:462)
at android.view.View.performClick(View.java:4780)
at android.view.View$PerformClick.run(View.java:19866)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)