連接片段和適配器
簡介:
在片段和自訂遊標適配器之間創建通訊通道可以促進數據無縫交換以及這些組件之間的事件處理。
問題:
片段包含與遊標適配器關聯的 ListView。此適配器在每個清單行中都有一個帶有 onClick 偵聽器的按鈕。目標是在按下此按鈕時通知片段。
解決方案:
-
在適配器中定義介面:
- 在適配器中類別中使用方法buttonPressed()建立AdapterInterface。
-
在Fragment中實作介面
:- 在fragment類別中,實作AdapterInterface>
在fragment類別中,實作AdapterInterface並重寫buttonPressed() 。 -
- 將Fragment傳遞為適配器的參數
- :
- 向接受 AdapterInterface 物件的轉接器類別。
實例化適配器時,傳遞片段(實作 AdapterInterface)作為參數。 -
- 從適配器的OnClickListener 呼叫介面
- :
- 在適配器的bindView(監聽器。
在監聽器內,呼叫傳入片段的 buttonPressed() 方法。
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中文網其他相關文章!
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章
刺客信條陰影:貝殼謎語解決方案
3 週前ByDDD
Windows 11 KB5054979中的新功能以及如何解決更新問題
2 週前ByDDD
在哪裡可以找到原子中的起重機控制鑰匙卡
3 週前ByDDD
節省R.E.P.O.解釋(並保存文件)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
刺客信條陰影 - 如何找到鐵匠,解鎖武器和裝甲定制
3 週前ByDDD

熱工具

SublimeText3漢化版
中文版,非常好用

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

Dreamweaver CS6
視覺化網頁開發工具

mPDF
mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

禪工作室 13.0.1
強大的PHP整合開發環境