Chi*_*tan 19 android android-activity
我正在尝试将子活动的数据发送到父级.但不知何故,onActivityResult(..)没有被调用.这是代码
家长活动
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;
}
}
Run Code Online (Sandbox Code Playgroud)
子活动:我可以在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();
}
});
Run Code Online (Sandbox Code Playgroud)
You*_*jae 81
对于遇到相同问题的任何人onActivityResult,在以下情况下无法接收的症状都可能导致此问题.
startActivityForResult()正确,请勿使用startActivity().onBackPressed方法中做某事,super.onBackPressed();必须定位在方法的最后一个,而不是在第一行.(我的情况花了5个小时)android:launchMode="singleInstance"在manifest或等效参数中删除以创建intent.noHistory="true"被调用者活动的清单.setResult()错过了.finish()被叫来关闭活动.用于finishActivity()关闭被调用者活动.requestCode超过零.负值不起作用.Chi*_*tan 10
我发现了错误.我在manifest.xml的下面有一行用于子活动.
android:launchMode="singleInstance"
Run Code Online (Sandbox Code Playgroud)
删除此行后.它的工作就像一个魅力!
谢谢大家的意见和建议.
| 归档时间: |
|
| 查看次数: |
18315 次 |
| 最近记录: |