我有这个迷你游戏和两个活动。我使用了一个意图命令我的应用程序从活动1(只是一个菜单屏幕)转到活动2. 然而,我想将游戏得分从活动2返回到活动1,当gameIsOver时,但我的第二项活动是:
公共类MainActivity扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new DrawView (this));
}
}
所以我的活动实际上是在DrawView类中运行的,它扩展了View类。如何从查看类中将某些内容返回到活动1?
答案 0 :(得分:0)
这里需要做两件事:
首先 - 您的自定义视图需要将其分数报告给托管活动2
为了实现这个目的,请创建一个名为eg。
的接口public interface OnResult {
void onResult(int result);
}
使您的Activity2实现OnResult
,并让您的自定义DrawView类具有字段OnResult resultCallback;
,并让活动将其自身作为此字段。
e.g。
@覆盖
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DrawView view = new DrawView (this); // "this" here as a Context object
view.setResultCallback(this); // "this" here as the OnResult listener object
setContentView(view);
}
而且,在你的自定义视图中有结果时调用你的resultCallback.onResult()(即调用活动)
通过接口here
详细了解回调机制秒 - 在您的activity2中将答案传回活动1
首先,从activity1启动activity2时,不要只使用startActivity()
启动它,而是使用startActivityForResult()
并在第一步的onResult()
的activity2实现中,通过意图返回结果并完成活动 -
Intent intent = new Intent();
intent.putExtra("editTextValue", "value_here")
setResult(RESULT_OK, intent);
finish();
详细了解将返回值从一个活动传递到另一个活动here(通过@Uma Sankar)