簡介:
在片段和自訂遊標適配器之間創建通訊通道可以促進數據無縫交換以及這些組件之間的事件處理。
問題:
片段包含與遊標適配器關聯的 ListView。此適配器在每個清單行中都有一個帶有 onClick 偵聽器的按鈕。目標是在按下此按鈕時通知片段。
解決方案:
在適配器中定義介面:
在Fragment中實作介面
:
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 } }範例程式碼
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
以上是如何實作Fragment和自訂遊標適配器之間的通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!