Java 按下后退按钮时活动未发送结果
我正在使用以下代码开始我的活动Java 按下后退按钮时活动未发送结果,java,android,eclipse,Java,Android,Eclipse,我正在使用以下代码开始我的活动 public void onClick(View v) { Intent myIntent = new Intent(v.getContext(), AddReceipt.class); startActivityForResult(myIntent, RECEIPT_ADDED); } 现在我想从AddReceivement类获取数组,或者从我的子活动获取数据 publ
public void onClick(View v) {
Intent myIntent = new Intent(v.getContext(), AddReceipt.class);
startActivityForResult(myIntent, RECEIPT_ADDED);
}
现在我想从AddReceivement类获取数组,或者从我的子活动获取数据
public synchronized void onActivityResult(final int requestCode, int resultCode, final Intent data) {
if (resultCode == Activity.RESULT_OK)
{
if (requestCode == RECEIPT_ADDED)
{
String abc = "abs";
}
}
}
调用此函数时,它将数据返回为null,结果代码返回为0。如何从我的子活动中获取数据
致以最诚挚的问候要从子活动中获得结果,您需要在子活动中调用该方法,并在
Intent
对象中传递结果代码和可能的任何数据量。然后,您可以在主要活动的onActivityResult()
中捕获此Intent
。希望这有帮助。要将数据从子活动传递到父活动,请使用以下代码:
Intent intent= childActivity.getIntent();
intent.putExtra("key","value");
childActivity.setResult(Activity.RESULT_OK, intent);
childActivity.finish();
如果值是对象列表,请使用Serializable
现在,如果您按下后退按钮,
onActivityResult
父类的方法将被调用,您将得到RESULT\u CANCEL
您是否也查看了:请发布您的AddReceipt类或调用Activity.setResult()的位置。谢谢fyr。成功了。但我如何才能将我的arraylist添加到该intent值中。putextra没有ArrayList的类型您必须将其设置为putextra(字符串名称,可序列化值)
,因为ArrayList正在实现Serializable
接口