-
在Android開發中,有時候我們需要在新開啟的視窗中傳遞資料回來。例如:在新開啟的 DialogFragment 視窗傳遞資料回 MainActivity 啟動視窗
-
程式碼舉例
-
首先在 MainActivity 中定義例項化一個 DialogFragment 視窗
// MainActivity.java // 點選按鈕開啟一個 DialogFragment 視窗 btn.setOnClickListener(v ->{ DialogFragment1 dialogFragment = new DialogFragment1(); // 假定 DialogFragment 視窗類名為DialogFragment1 dialogFragment.show(getFragmentManager(), "dialogFragment"); // 顯示 DialogFragment 視窗 });
-
隨後在需要開啟的 DialogFragment 類中建立介面並回傳資料
//DialogFragment1.java // SetOnClickDialogListener 為自定義類,在未建立完成時回持續爆紅 private SetOnClickDialogListener clickListener; //定義構造方法,用於在 MainActivity 中接收資料 public void mOnClickListener(SetOnClickDialogListener l){ this.clickListener = l; } //自定義類的介面,裡面的 ClickDialogListener 為 DialogFragment 中自定義的使用方法與形參,用於回傳資料 public interface SetOnClickDialogListener{ //這裡假定需要回傳一個字串與一個整數 void ClickDialogListener(String str, int num); } //點選按鈕回傳資料 btn.setOnClickListener(v -> { clickListener.ClickDialogListener("hallow, world!", 1); //回傳資料 this.dismiss();//關閉視窗 });
-
MainActivity 中接收資料
// MainActivity.java btn.setOnClickListener(v ->{ DialogFragment1 dialogFragment = new DialogFragment1(); // 假定 DialogFragment 視窗類名為DialogFragment1 dialogFragment.show(getFragmentManager(), "dialogFragment"); // 顯示 DialogFragment 視窗 //使用 DialogFragment 類中自定義的構造方法進行接收資料 dialogFragment.mOnClickListener((str, num) -> { //充分利用所接收到的資料 if (num == 1) { btn.setText(str) } }); });
-
-
如此這般即可實現資料回傳,如果是在 MainActivity 中傳遞資料到 DialogFragment 中,不建議使用此方法,建議使用 Bundle 類 進行傳遞
Android開發 - 使用自定義介面在新視窗中傳回資料
相關文章
- android短視訊開發,自定義下拉選單Android
- 在.NET 6.0中自定義介面路由路由
- Android開發教程 - 使用Data Binding(八)使用自定義InterfaceAndroid
- Android開發---在RecyclerView列表中新增自定義的列表頭部與尾部檢視AndroidView
- Android進階:自定義視訊播放器開發(上)Android播放器
- Android進階:自定義視訊播放器開發(下)Android播放器
- Android開發進階——自定義View的使用及其原理探索AndroidView
- 自定義開發資料庫升級程式資料庫
- react-native 仿原生自定義彈窗|iOS/Android 彈窗效果ReactiOSAndroid
- Vue中在新視窗開啟頁面 及 Vue-routerVue
- Android開發 - Parcelable 介面實現不同元件之間傳遞資料解析Android元件
- 偏前端 – jquery-iframe內觸發父視窗自定義事件-前端jQuery事件
- 短視訊平臺開發,自定義一個彈窗樣式和內容
- thinkphp6 使用自定義命令,生成資料庫檢視PHP資料庫
- 大資料開發-Flink-視窗全解析大資料
- vue 內開啟一個新視窗,帶傳參!Vue
- 滑鼠拖動圖片,禁止在新視窗中開啟圖片
- 直播軟體開發,工具類的自定義彈窗效果
- Windows API視窗程式設計 - 自定義按鈕WindowsAPI程式設計
- avalonia自定義彈窗
- Qt之彈出介面顯示在父視窗中間QT
- 自主資料型別:在TVM中啟用自定義資料型別探索資料型別
- Windows API視窗程式設計 - 完善自定義按鈕WindowsAPI程式設計
- 34.qt quick-Popup彈出視窗自定義QTUI
- Laravel 中自定義使用者登入的資料表Laravel
- Android自定義View之Canvas的使用AndroidViewCanvas
- 自定義版本更新彈窗
- uniapp 自定義彈窗元件APP元件
- 【朝花夕拾】Android自定義View篇之(五)Android事件分發及傳遞機制AndroidView事件
- [C#] (原創)進度等待視窗(附:自定義控制元件的使用)C#控制元件
- 使用 JWT 時,新增自定義資料並在登陸時校驗JWT
- android--Android Studio使用terminal終端(命令視窗)Android
- 在Mac中如何用⌘鍵拖拽非使用中的視窗?Mac
- Android中自定義Toast文字大小AndroidAST
- js 開啟新視窗方式JS
- fastadmin新增自定義按鈕,並使用彈窗功能AST
- 在Flutter中使用自定義IconFlutter
- Vector中存放自定義資料型別資料型別