>  기사  >  Java  >  인터페이스를 사용하여 조각과 해당 어댑터 간에 통신하는 방법은 무엇입니까?

인터페이스를 사용하여 조각과 해당 어댑터 간에 통신하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-19 12:58:03321검색

How to Communicate Between a Fragment and its Adapter Using an Interface?

조각과 어댑터 간의 통신을 위한 인터페이스 구현

설명된 시나리오에는 조각 MyListFragment에는 ListView 및 사용자 정의 CursorAdapter가 포함되어 있습니다. 목록의 특정 행에서 버튼을 눌렀을 때 MyListFragment에 알리려고 합니다. 이러한 통신을 수행하려면 인터페이스 기반 접근 방식을 사용할 수 있습니다.

MyListAdapter에서 인터페이스 AdapterInterface와 콜백 메소드 buttonPressed를 정의합니다. (),은 버튼 클릭 시 호출됩니다.

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...
}
다음으로

MyListAdapter를 수정하여 AdapterInterface 유형의 인스턴스 변수와 다음을 수행하는 생성자를 포함합니다. 이 인터페이스의 인스턴스를 인수로 받아들입니다.

private AdapterInterface buttonListener;

public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener) {
  super(context,c,flags);
  this.buttonListener = buttonListener;
}

MyListFragment에서 AdapterInterface를 구현하고 buttonPressed(),를 재정의합니다. 어댑터에 있는 AdapterViewonClickListener에서 호출됩니다.

public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // ...
    }
}
마지막으로

MyListFragmentMyListAdapter를 인스턴스화합니다. > MyListFragment 자체의 인스턴스를 어댑터 생성자에 대한 인수로 전달합니다.

이렇게 하면
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
MyListAdapter

buttonPressed( ) 목록 행의 버튼을 누를 때마다 MyListFragment의 메서드입니다. 이를 통해 어댑터와 프래그먼트 간의 원활한 통신이 가능해지며 버튼 클릭 시 필요한 조치를 취할 수 있습니다.

위 내용은 인터페이스를 사용하여 조각과 해당 어댑터 간에 통신하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.