gpt4 book ai didi

java - 将数据从 SurfaceView 传递到另一个 Activity

转载 作者:行者123 更新时间:2023-12-01 14:20:28 25 4
gpt4 key购买 nike

下面代码的解释:我试图完成的任务是将 boolean 值从我的 SurfaceView Activity (surfaceActivity) 发送到我的主 Activity (mainActivity)。下面是我的代码的 4 部分,mainActivity 的初始化、surfaceActivity 的初始化、如何发送 boolean 值以及如何接收 boolean 值。显然,我用来发送/接收信息的代码是大多数人在互联网上取得成功的代码,只是考虑到我有两个 Activity ,我的情况有点不同,但 surfaceActivity 是通过 mainActivity 设置的,因此并不是真的独立。

我的主要 Activity :

public class MainActivity extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new surfaceActivity(this));

private Bundle bundle;
}
}

然后通向我的 SurfaceView

public class surfaceActivity extends SurfaceView  implements SurfaceHolder.Callback {
private MainThread thread;
private Context context;

public surfaceActivity(Context context) {
super(context);
getHolder().addCallback(this);
thread = new MainThread(getHolder(), this);

this.context = context;

setFocusable(true);
}

然后当屏幕上的触摸被注册时:

Intent i = new Intent(context, MainActivity.class);             
Bundle bundle = new Bundle();
bundle.putBoolean("boo",true);
i.putExtras(bundle);
startActionMode((Callback) i);

然后不断重复循环回到 MainActivity 类:

if (bundle != null)
{
bundle = getIntent().getExtras();
Boolean stuff = bundle.getBoolean("boo");
}

此外,大多数人一直在使用startActivity(i);但 Eclipse 将其更正为 startActionMode((Callback) i);

提前非常感谢!

最佳答案

MainActivity 是一个 Activity,SurfaceActivity(尽管名称显示为 Activity)只是一个已添加为 MainActivity 的内容 View 的 View 。MainActivity 可以将 SurfaceActivity 的引用声明为 Instance 变量,然后它可以从 SurfaceActivity 中读取值。

基于 Intent 的机制通常用于在 Activity 之间传递值,在您的情况下,您没有 2 个 Activity 。您有一项 Activity 和一项 View 。

关于java - 将数据从 SurfaceView 传递到另一个 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17625158/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com