首頁 > Java > java教程 > 主體

如何使用介面在片段與其適配器之間進行通訊?

Mary-Kate Olsen
發布: 2024-11-19 12:58:03
原創
318 人瀏覽過

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

實作片段和適配器之間通訊的介面

在所描述的場景中,您有一個片段,MyListFragment, 包含ListView 和自訂CursorAdapter。 您的目標是在清單的特定行中按下按鈕時通知 MyListFragment。為了實現這種通信,您可以採用基於介面的方法。

MyListAdapter 中,定義一個介面AdapterInterface,以及一個回呼方法buttonPressed (), 在按鈕時呼叫:

buttonPressed (),
public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...
}
登入後複製
在按鈕時呼叫:

buttonPressed (), 在按鈕時呼叫:buttonPressed (), 在按鈕時呼叫:buttonPressed (),

在按鈕時呼叫:
private AdapterInterface buttonListener;

public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener) {
  super(context,c,flags);
  this.buttonListener = buttonListener;
}
登入後複製
buttonPressed (),

在按鈕時呼叫:buttonPressed (), 在按鈕時呼叫:buttonPressed (), 在按鈕時呼叫:buttonPressed (), 在按鈕點擊>接下來,修改MyListAdapter 以包含

AdapterInterface
public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // ...
    }
}
登入後複製
類型的實例變數和建構子接受此介面的實例作為參數:

MyListFragment 中,實作AdapterInterface

並覆蓋
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
登入後複製
buttonPressed(),

這將從適配器中AdapterView > 呼叫:最後,在MyListFragmentMyListAdapter > 並將MyListFragment 本身的實例作為適配器建構子:藉由這樣做,MyListAdapter 可以呼叫buttonPressed(每當按下清單行中的按鈕時, MyListFragment 的 方法。

以上是如何使用介面在片段與其適配器之間進行通訊?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板