日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Dialog向Activity传递数据

發布時間:2024/9/5 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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传递数据的全部內容,希望文章能夠幫你解決所遇到的問題。

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