>Java >java지도 시간 >조각과 사용자 정의 커서 어댑터 간의 통신을 구현하는 방법은 무엇입니까?

조각과 사용자 정의 커서 어댑터 간의 통신을 구현하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-16 07:29:02416검색

How to Implement Communication Between a Fragment and a Custom Cursor Adapter?

조각과 어댑터 인터페이스

소개:
조각과 사용자 정의 커서 어댑터 간에 통신 채널을 생성하면 원활한 데이터 교환이 촉진될 수 있습니다. 그리고 이들 사이의 이벤트 처리

문제:
조각에 커서 어댑터와 연결된 ListView가 포함되어 있습니다. 어댑터에는 onClick 리스너가 있는 각 목록 행의 버튼이 있습니다. 목표는 이 버튼을 눌렀을 때 프래그먼트에 알리는 것입니다.

해결책:

  1. 어댑터에서 인터페이스 정의:

    • 메서드를 사용하여 어댑터 클래스 내에서 AdapterInterface를 생성합니다. ButtonPressed().
  2. 조각에 인터페이스 구현:

    • 조각 클래스에서 AdapterInterface 및 ButtonPressed()를 재정의하세요.
  3. 조각을 어댑터에 인수로 전달:

    • 어댑터 클래스에 생성자를 추가합니다. AdapterInterface 개체를 허용합니다.
    • 어댑터를 인스턴스화할 때 프래그먼트를 전달합니다(구현 AdapterInterface)를 인수로 사용합니다.
  4. 어댑터의 OnClickListener에서 인터페이스 호출:

    • 어댑터의 바인딩 보기() 내부 메서드를 사용하여 버튼에 대한 onClick 리스너를 설정합니다.
    • 내부 리스너는 전달된 프래그먼트의 버튼Pressed() 메서드를 호출합니다.

예 코드:

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    private AdapterInterface buttonListener;

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

    @Override
    public void bindView(final View view, final Context context, final Cursor cursor) {
        ViewHolder holder = (ViewHolder) view.getTag();

        ...

        holder.button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                buttonListener.buttonPressed();
            }
        });
    }
}

public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // some action
    }
}
  1. 사용:

    • 어댑터의 인스턴스를 생성하고 조각을 전달합니다. 로서 인수:

      MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
  2. 방향 변경에 대한 주의:

    • 방향 변경 시 프래그먼트 재생성에 유의하세요. 존재하지 않는 조각에 대한 어댑터 참조가 오래 지속될 수 있습니다. 이를 방지하려면 어댑터를 다시 만드는 것도 고려해 보세요.

위 내용은 조각과 사용자 정의 커서 어댑터 간의 통신을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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