将数据从内部视图传递到活动

时间:2016-04-05 21:29:28

标签: android android-activity view pass-data

我有一个包含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并绘制多个形状,但用户根本不会触摸屏幕

2 个答案:

答案 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.
 }


}
相关问题