安卓 Java。lang.ClassCastException:无法将活动强制转换到接口
我试图使用父活动实现的接口从另一个片段“B”调用一个片段“a”中名为“change_color()”的方法。当我尝试将父活动强制转换到接口的实例时,我得到了这个ClassCastException
这是片段“B”的片段
Public class B extends Fragment implements View.onClickListener{
public attendance_to_history var;
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_attendance_take,
container, false);
return rootView;
}
public void onActivityCreated(Bundle savedInstanceState){
super.onActivityCreated(savedInstanceState);
var = (attendance_to_history) getActivity();
}
这是接口的代码
interface attendance_to_history{
public void invoke();}
以下是我的家长活动的代码:
public class tabbed_activity extends AppCompatActivity implements attendance_to_history{
@Override
public void invoke() {
fragment_A frag = new fragment_A();
frag.change_color();
}
}
# 1 楼答案
以下是解决方案: 1-在保存片段B的活动中,将其设为
implements attendance_to_history
,并重写活动中的方法invoke
那么你的代码就可以正常工作了
# 2 楼答案
替换为onActivityCreated