生活随笔
收集整理的這篇文章主要介紹了
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?{????????????public?interface?PriorityListener?{??????????????????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);?????????????????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传递数据的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。