Dies ist Code von Head First Android. In der onAttach-Methode frage ich mich, wie die Activity-Aktivitätsvariable in WorkoutListListener typisiert wird. Gibt es eine Super-Sub-Beziehung?Android - Aktivität Typecasting in einen Schnittstellentyp
public class WorkoutListFragment extends ListFragment {
public WorkoutListFragment() {
// Required empty public constructor
}
static interface WorkoutListListener {
void itemClicked(long id);
}
private WorkoutListListener listener;
@Override
public View onCreateView(LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
String[] names = new String[Workout.workouts.length];
for (int i = 0; i < Workout.workouts.length; i++) {
names[i] = Workout.workouts[i].getName();
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(inflater.getContext(), android.R.layout.simple_list_item_1, names);
setListAdapter(adapter);
return super.onCreateView(inflater, container, savedInstanceState);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
if (listener != null) {
listener.itemClicked(id);
}
}
@Override
public void onAttach(Activity activity) {
super.onAttach(context);
this.listener = (WorkoutListListener) activity;
}
}
Sie meinen, die Aktivitäten müssen WorkoutListListener richtig erweitern? –
@KevinBaik, Technisch gesehen sollte '' 'WorkoutListListener''' eine Schnittstelle sein, also müssen die Aktivitäten die Schnittstelle implementieren, wenn' '' WorkoutListListener''' eine Unterklasse von '' Activity''' ist, dann ja, alle Die Aktivitäten müssen '' 'WorkoutListListener''' erweitern. – danypata
Vielen Dank für Ihre Hilfe –