프래그먼트와 어댑터 간의 인터페이스 생성
ListView와 사용자 정의 CursorAdapter가 포함된 프래그먼트를 처리할 때 둘 사이의 통신을 설정하는 것이 중요합니다. . 이를 달성하기 위해 인터페이스는 깔끔하고 효율적인 솔루션을 제공할 수 있습니다.
인터페이스 정의
어댑터 클래스에서 호출할 메서드를 정의하는 인터페이스를 정의합니다. 버튼이 눌려졌습니다. 예:
public interface AdapterInterface { public void buttonPressed(); }
어댑터 구현
인터페이스의 인스턴스 변수를 초기화하는 어댑터에 생성자를 추가합니다.
public MyListAdapter(Context context, Cursor c, int flags, AdapterInterface buttonListener) { super(context, c, flags); this.buttonListener = buttonListener; }
BindView() 메서드에서 버튼을 클릭하면 인터페이스에서 ButtonPressed() 메서드를 호출합니다.
@Override public void bindView(...) { ... holder.button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { buttonListener.buttonPressed(); } }); }
Fragment Implement
AdapterInterface를 구현합니다. 프래그먼트 클래스를 삭제하고 ButtonPressed() 메서드를 재정의합니다.
public class MyListFragment extends Fragment implements AdapterInterface { @Override public void buttonPressed() { // Custom action to be performed } }
초기화
어댑터를 생성할 때 프래그먼트를 생성자에 인수로 전달합니다.
MyListAdapter adapter = new MyListAdapter(getActivity(), myCursor, myFlags, this);
참고
위 내용은 조각과 해당 CursorAdapter 간의 통신을 설정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!