Зачем нужно приведение типов в функции обратного вызова android?

В примерах кода на developer.android.com есть конструкция передачи данных от фрагмента к активности. Там используется интерфейс обратного вызова. Разбираю код построчно и интересует вопрос: зачем приводить активность к типу onArticleSelectedListener (mListener = (OnArticleSelectedListener) activity;)?

Код фрагмента:

public static class FragmentA extends ListFragment {
    ...
    // Container Activity must implement this interface
    public interface OnArticleSelectedListener {
        public void onArticleSelected(Uri articleUri);
    } 
    OnArticleSelectedListener mListener;

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        try {
            mListener = (OnArticleSelectedListener) activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
        }
    }
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        // Append the clicked item's row ID with the content provider Uri
        Uri noteUri = ContentUris.withAppendedId(ArticleColumns.CONTENT_URI, id);
        // Send the event and Uri to the host activity
        mListener.onArticleSelected(noteUri);
    }
  }

В активности происходит переопределение метода интерфейса onArticleSelected.


Ответы (0 шт):