但是新的activity返回后view还需要显示
时间: 2023-12-10 08:04:35 浏览: 32
如果您需要在新的Activity返回后重新显示View,您可以在新Activity的onActivityResult方法中重新添加View。
例如,在您的当前Activity中,您可以这样启动新Activity并等待其返回结果:
```
// 创建一个Intent,启动新的Activity
Intent intent = new Intent(CurrentActivity.this, NewActivity.class);
startActivityForResult(intent, REQUEST_CODE_NEW_ACTIVITY);
```
然后,在新Activity中,当您完成操作并准备返回时,您可以将结果设置为返回Intent,并在finish()方法中返回:
```
// 在新Activity中设置返回结果
Intent resultIntent = new Intent();
resultIntent.putExtra("result", "your_result");
setResult(Activity.RESULT_OK, resultIntent);
// 关闭新Activity并返回
finish();
```
最后,在当前Activity的onActivityResult方法中,您可以检查请求码和结果码,并重新添加View:
```
// 在当前Activity的onActivityResult方法中检查请求码和结果码,并重新添加View
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_NEW_ACTIVITY && resultCode == Activity.RESULT_OK) {
// 重新添加View
WindowManager.LayoutParams layoutParams = new WindowManager.LayoutParams(
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.MATCH_PARENT,
WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
windowManager.addView(view, layoutParams);
}
}
```
这样,当新Activity返回结果时,您可以重新添加View并显示它。请注意,如果您在新Activity中使用了相同的View,您需要在重新添加View之前重新创建它。