您的MainActivity不应该打电话 startActivity ,而是应该打电话 startActivityForResult ,启动AddStarActivity时。然后在AddStarActivity中,你会打电话 setResult 当你递增。最后,删除 onBackPressed 来自AddStarActivity。当用户单击后退按钮从AddStarActivity返回到MainActivity时(意味着系统会 finish 然后是AddStarActivity) MainActivity#onActivityResult 将被调用。
startActivity
startActivityForResult
setResult
onBackPressed
finish
MainActivity#onActivityResult
你可以用牵引方式来做这件事
的 广播接收器 强> 在您的第一个活动中注册广播,并使用以下示例中的数据从您的第二个活动中触发操作 在你的第一个活动中
BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent != null && intent.getAction() != null && intent.getAction().equals("SendCounter")) { counter=intent.getIntExtra("value",0); } } }; registerReceiver(receiver,new IntentFilter("value"));
在你的第二个活动中
Intent intent=new Intent("SendCounter"); intent.putExtra("value",counterValue); sendBroadcast(intent);
的 静态会员 强> 在您的活动中定义一个变量并定义为静态,以便您可以将该特定成员作为静态访问。
在你的第一个活动中
public static int counter;
现在,在第二个活动中,您可以在第一个活动变量中添加值,如下图所示
ActivityFirst.counter=30 //New value
在MainActivity中使数量为public static,并在AddStarActivity中增加相同的静态变量。所以你的功能将是
public void increment(View view) { if (MainActivity.quantity == 100) { return; } MainActivity.quantity++; displayQuantity(MainActivity.quantity); }