我有一个包含View的活动。
public class SecondActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second_act);
LinearLayout surface = (LinearLayout) findViewById(R.id.surfaceView1);
surface.addView(new PlacingBoxView(this));
surface.setBackgroundColor(Color.BLACK);
if (ACTIONS_FINISHED){
Log.d("TAG", "i made it!!");
}
}
在PlacingBoxView
内我做了一些动作,一旦完成,我将一个名为ACTIONS_FINISHED
的布尔值设置为true。我的目标是,一旦我将此布尔值设置为true,然后自动在活动中执行一些操作。
我一直在尝试使用all this possibilities,但他们只是为了分享信息。也许我应该使用onActivityResult,但我已经在活动中......
有什么想法吗?提前谢谢!
编辑:视图执行AsyncTask并绘制多个形状,但用户根本不会触摸屏幕
答案 0 :(得分:1)
我一直在尝试使用所有这些可能性,但它们只是为了分享信息。也许我应该使用onActivityResult,但我已经在活动中......
不,onActivityResult()
有不同的目的。你要做的是在你的视图中实现普通的监听器,然后将你的活动附加到视图的监听器(就像你使用OnClickListener
一样)。这样,您的视图将能够在需要时回调并以此方式触发Activity中的某些操作。
答案 1 :(得分:1)
在PlacingBoxView
班级中定义一个界面:
public class PlacingBoxView{
private GetCallBack callback;
public PlacingBoxView(Context context){
callback = (GetCallBack) context;
}
public void someMethodWhichSendsData(){
callback.onMessageReceived(msg);
}
public interface GetCallBack{
void onMessageReceived(Object msg);
}
}
现在在activity
实现界面:
public class SecondActivity extends AppCompatActivity implements PlacingBoxView.GetCallBack{
@Override
public void onMessageReceived(Object msg){
// you have got your msg here.
}
}