日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Dialog向Activity传递数据

發布時間:2024/9/5 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dialog向Activity传递数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文出處:http://superonion.iteye.com/blog/1418467

我們知道,從一個Activity向另一個Activity傳遞數據,用Intent實現。而當一個浮在Activity之上的Dialog需要向該Activity傳遞數據時,應該怎么實現呢?接著上一篇文章:用Dialog創建帶箭頭的對話框。?
?????? 現在PopupDialog中聲明一個內部接口PriorityListener,接口中聲明一個回調函數refreshPriorityUI,用于在Dialog的監聽事件觸發后刷新Activity的UI顯示。然后在MainActivity中的Button點擊事件中實現這個接口并將其作為PopupDialog的構造函數的參數傳入,并實現refreshPriorityUI()方法。話不多說,直接上代碼——?
???? PopupDialog代碼:?

Java代碼??
  • public?class?PopupDialog?extends?Dialog?{??
  • ??
  • ????/**?
  • ?????*?自定義Dialog監聽器?
  • ?????*/??
  • ????public?interface?PriorityListener?{??
  • ????????/**?
  • ?????????*?回調函數,用于在Dialog的監聽事件觸發后刷新Activity的UI顯示?
  • ?????????*/??
  • ????????public?void?refreshPriorityUI(String?string);??
  • ????}??
  • ??????
  • ????private?PriorityListener?listener;??
  • ????/**?
  • ?????*?帶監聽器參數的構造函數?
  • ?????*/??
  • ????public?PopupDialog(Context?context,?int?theme,?PriorityListener?listener)?{??
  • ????????super(context,?theme);??
  • ????????this.listener?=?listener;??
  • ????}??
  • ??
  • ????protected?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.popup_dialog);??
  • ????????Button?buttonUp?=?(Button)?findViewById(R.id.btn_up);??
  • ????????buttonUp.setOnClickListener(new?Button.OnClickListener()?{??
  • ??????????????
  • ????????????@Override??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????dismiss();??
  • ????????????????listener.refreshPriorityUI("數據來自:上");?????????????????
  • ????????????}??
  • ????????});??
  • ????}??
  • ??
  • }??


  • ???? MainActivity代碼:?

    Java代碼??
  • public?class?MainActivity?extends?Activity?{??
  • ??????
  • ????@Override??
  • ????public?void?onCreate(Bundle?savedInstanceState)?{??
  • ????????super.onCreate(savedInstanceState);??
  • ????????setContentView(R.layout.main);??
  • ????????Button?button?=?(Button)findViewById(R.id.btn);??
  • ????????button.setOnClickListener(new?OnClickListener()?{??
  • ??????????????
  • ????????????@Override??
  • ????????????public?void?onClick(View?v)?{??
  • ????????????????PopupDialog?popupDialog?=?new?PopupDialog(MainActivity.this,?R.style.dialog,?new?PopupDialog.PriorityListener()?{??
  • ??????????????????????
  • ????????????????????@Override??
  • ????????????????????public?void?refreshPriorityUI(String?string)?{??
  • ????????????????????????Toast.makeText(MainActivity.this,?string,?Toast.LENGTH_SHORT).show();??
  • ????????????????????}??
  • ????????????????});??
  • ????????????????popupDialog.setCanceledOnTouchOutside(true);?//?點擊Dialog之外的區域對話框消失??
  • ????????????????Window?window?=?popupDialog.getWindow();??
  • ????????????????WindowManager.LayoutParams?lp?=?window.getAttributes();??
  • ????????????????lp.y?=?-64;?//?設置豎直方向的偏移量??
  • ????????????????lp.dimAmount?=?0f;?//?彈出對話框的時候背景不變暗??
  • ????????????????popupDialog.show();??
  • ????????????}??
  • ????????});??
  • ????}??
  • }??


  • ????? 最后效果:?

    ?

    ?????? 點擊“上”之后,MainActivity會調用refreshPriorityUI()方法:?

    轉載于:https://www.cnblogs.com/a446276468/p/5310285.html

    總結

    以上是生活随笔為你收集整理的Dialog向Activity传递数据的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。