조각과 어댑터 간의 통신을 위한 인터페이스 구현
설명된 시나리오에는 조각 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(),를 재정의합니다. 어댑터에 있는 AdapterView의 onClickListener에서 호출됩니다.
public MyListFragment extends Fragment implements AdapterInterface { @Override public void buttonPressed() { // ... } }마지막으로
MyListFragmentMyListAdapter를 인스턴스화합니다. > MyListFragment 자체의 인스턴스를 어댑터 생성자에 대한 인수로 전달합니다.
이렇게 하면MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);MyListAdapter
는 buttonPressed( ) 목록 행의 버튼을 누를 때마다 MyListFragment의 메서드입니다. 이를 통해 어댑터와 프래그먼트 간의 원활한 통신이 가능해지며 버튼 클릭 시 필요한 조치를 취할 수 있습니다.
위 내용은 인터페이스를 사용하여 조각과 해당 어댑터 간에 통신하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!