我想從孩子活動發送數據到父母。但不知何故,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