我想从孩子活动发送数据到父母。但不知何故,onActivityResult(..)没有被调用。这里是代码onActivityResult方法不被调用Android
父活动
selectedText.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (event.getActionMasked() == MotionEvent.ACTION_DOWN) {
Intent intent = new Intent(Parents.this,Child.class);
startActivityForResult(intent, 1);
}
return true;
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
if (data.hasExtra("selText")) {
selectedText.setText(data.getExtras().getString(
"selText"));
}
break;
}
}
子活动:我可以看到()选择的值在设定的setResult。但在孩子活动结束后,这不会回到父母的活动。
textListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int myItemInt,
long arg3) {
selectedFromList =(String) (textListView.getItemAtPosition(myItemInt));
Intent data = new Intent();
data.putExtra("selText", selectedFromList);
setResult(RESULT_OK,data);
finish();
}
});
在尝试在子活动中尝试Intent data = getIntent()后没有工作 – Chintan
尝试在'onActivityResult()'中添加一些'System.out.println()'来查看实际正在执行的代码。一旦你缩小它,你应该能够找出问题。如果没有,请编辑您的帖子并告诉我们哪些行正在执行。 – Don
因此,当我触摸事件正在被调用的父活动..它进入onTouch(),当它执行startActivityForResult(intent,1)行,它去onActivityResult()与请求代码是1.之后,它跳转到子活动并加载它。从ChildActivity.OnItemClick()中选择值后,它完成了子活动,但从未返回到父级的onActivityResult()。希望它很清楚 – Chintan