如何使用一个活动回调在其他活动 [英] How to use one activity call back's in other activity

查看:194
本文介绍了如何使用一个活动回调在其他活动的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个活动:

FirstActivity (其中还包含列表< MapGroup> )我实现我的接口(GetMaps)。

In FirstActivity(which also contains List<MapGroup>) I implemented my Interface(GetMaps).

SecondActivity 包含我通过一个适配器,在那里我可以选择或取消选择地图的地图列表。每当我选择或取消选择,我想在 FirstActivity 来更新我的列表&LT; MapGroup&GT; :如果我选择,我想添加,如果我取消我想从的ArrayList

SecondActivity contains my list of maps with an adapter, where I can select or deselect the maps. Whenever I select or deselect I would like to update in FirstActivity my List<MapGroup>: if I select I would like to add, if I deselect I would like to remove from ArrayList.

我知道一个解决办法:这可以在Android中使用意图完成

I know one solution: this can be done using Intent in android.

但我要寻找一个解决方案,添加或删除可以并行自动完成。

But I am looking for a solution where add or remove can be done automatically in parallel.

推荐答案

1)利用广播接收器

1) Using BroadcastReceiver

当你改变任何数据发送广播接收器

When you change any data send BroadcastReceiver

Intent broadcast = new Intent();
broadcast.setAction("UpdateData");
sendBroadcast(broadcast);

渔获接收器,你要做像下面。

IntentFilter intentFilter = new IntentFilter(Intent.ACTION_DEFAULT);
intentFilter.addAction("UpdateData");
this.registerReceiver(this.broadcastReceiver, intentFilter);

和..

BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        if(intent.getAction().equals("UpdateData")){
         // Your code goes here.
        }
    }
};

注销时接收应用程序被破坏。

@Override
protected void onDestroy() {
    super.onDestroy();
    unregisterReceiver(broadcastReceiver);
};

2)使用意图

在你当前活动做到这样。

Intent nextAct = new Intent(CurrentAct.this,NextAct.class);
nextAct.putExtra("Key",value);
startActivityForResult(nextAct,1000);

覆盖的onActivityResult()在你当前活动的方法。

@Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode == 100 && resultCode == 1000){

        }
}

在你NextAct你必须设置结果code像下面。

setResult(1000);

示例的setResult code在onBack preSS();

@Override
    public void onBackPressed() {
         setResult(1000);
    }

这篇关于如何使用一个活动回调在其他活动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆