我有两项活动:
在FirstActivity
(也包含List<MapGroup>
)中,我实施了Interface
(GetMaps)。
SecondActivity
包含带适配器的地图列表,我可以在其中选择或取消选择地图。每当我选择或取消选择时,我想在FirstActivity
我的List<MapGroup>
更新:如果我选择我想添加,如果我取消选择我想从ArrayList
中删除。
我知道一个解决方案:这可以使用android中的Intent
来完成。
但我正在寻找一种可以自动并行添加或删除的解决方案。
答案 0 :(得分:3)
1)使用BroadcastReceiver
更改任何数据时发送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
。
在您当前的活动中,请执行此操作。
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中,您必须设置如下所示的结果代码。
setResult(1000);
示例:onBackPress()中的setResult代码;
@Override
public void onBackPressed() {
setResult(1000);
}