android 各种回调传值以及相应事件

一,两个Activity之间的回调 :这个用比较多,也很常见,

例1:Activity_A跳转Activity_B,Activity_B返回值

class Activity_A  extends Activity{

/**A跳转B,  100为标志值**/

public void buttonOnClick(View v){

startActivityForResult(new Intent(Activity_A.this, Activity_B.class),100);

}

/**接收B回传的值**/

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

if (requestCode == -1 || data == null) {

return;

}

String date = data.getStringExtra("date");

switch (resultCode) {

  case 100:

  System.out.println("**********"+date );

break;

}

}

class Activity_B extends Activity{

/**A跳转B,  100为标志值**/

Intent ret = new Intent();

ret.putExtra("date", "返回的值");

Activity_B .this.setResult(100, ret);

   二、Activity_A跳转自定义对话框Dialog_B,Dialog_B返回值,或响应事件

例2:

/**首先要建个接口**/ 

public interface itemClickOkCallBack {

 

    public void itemClickOk(int type,Object o);

     

} 

/**自定义Dialog_B **/ 

public class Dialog_B extends Dialog { 

 

private Activity context;

private itemClickOkCallBack listener; 


public Dialog_B(Activity context) {

super(context); 

this.context = context;

}


public Dialog_B(Activity context, int theme,

 itemClickOkCallBack listener) {

super(context, theme);

this.context = context; 

this.listener = listener;

}

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

this.setContentView(R.layout.okoff_dialog); 

 //okBut 

findViewById(R.id.but_ok).setOnClickListener(new android.view.View.OnClickListener() {

@Override

public void onClick(View v) {

dismiss();

listener.itemClickOk(0,"返回值");

}

 

});

 

 

}

}


   /**Activity_A  **/

class Activity_A  extends Activity{

public void buttonOnClick(View v){

Dialog_Bdialog = new Dialog_B(this,

R.style.My_Dialog,  new checkCallBack() {

@Override

public void itemClickOk(int type,Object o) { 

//回调事件  , o为返回的事件

}

});

dialog.show();

}

 class checkCallBack implements itemClickOkCallBack {

@Override

public void itemClickOk(int type, Object o) {

}

 

}

/**自定义对话框的style**/

 <style name="My_Dialog" parent="@android:Theme.Dialog">

        <item name="android:windowFrame">@null</item>

        <item name="android:windowNoTitle">true</item>

        <item name="android:windowBackground">@drawable/top</item>

        <item name="android:windowIsFloating">true</item>

        <item name="android:windowContentOverlay">@null</item>

    </style>

注:·1,这种回调也常用在多线程里,如下载图片等。

2,自定义对话框传值也有多种方法,例如Handler等,广播不推荐

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值