Ich versuche, eine Methode namens "change_color()" in meinem einen Fragment "A" aus einem anderen Fragment "B" unter Verwendung einer Schnittstelle, implementiert von der übergeordneten Aktivität . Wenn ich versuche, meine übergeordnete Aktivität auf die Instanz meiner Schnittstelle zu übertragen, erhalte ich diese ClassCastException.Java.lang.ClassCastException: Aktivität kann nicht in Schnittstelle umgewandelt werden
Hier ist der Ausschnitt des Fragments "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();
}
Hier ist der Code der Schnittstelle
interface attendance_to_history{
public void invoke();}
Hier ist Code aus meiner Eltern Aktivität:
public class tabbed_activity extends AppCompatActivity implements attendance_to_history{
@Override
public void invoke() {
fragment_A frag = new fragment_A();
frag.change_color();
}
}
Außerdem: Erfahren Sie mehr über Java-Namenskonventionen. Das sollte AttendanceToHistory stattdessen lesen ... – GhostCat