【发布时间】:2013-07-11 14:25:14
【问题描述】:
下面代码的解释:我要完成的任务是从我的surfaceview活动(surfaceActivity)向我的主要活动(mainActivity)发送一个布尔值。下面是我的代码的 4 部分,mainActivity 的初始化,surfaceActivity 的初始化,我如何发送布尔值,以及我如何接收布尔值。显然,我用来发送/接收信息的代码是大多数人在互联网上取得成功的代码,只是考虑到我有两个活动,我的情况有点不同,但 surfaceActivity 是通过 mainActivity 设置的,因此不是真的独立。
我的主要活动:
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);
提前非常感谢!
【问题讨论】:
标签: java android android-activity bundle surfaceview