【问题标题】:Pass data from inner View to Activity将数据从内部视图传递到活动
【发布时间】:2016-07-26 01:06:34
【问题描述】:

我有一个包含视图的活动。

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 并绘制多个形状,但用户根本没有触摸屏幕

【问题讨论】:

    标签: android android-activity view pass-data


    【解决方案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.
     }
    
    
    }
    

    【讨论】:

    • 完美的界面!鉴于我在PlacingBoxView 中使用的是视图而不是活动,您应该将Àctivity activity 更改为Context context,我会正确标记它!谢谢你的帮助;)
    • @Alvaro 我做了你在答案中要求的改变,所以你可以接受它。
    【解决方案2】:

    我一直在尝试利用所有这些可能性,但它们只是为了分享信息。也许我应该使用 onActivityResult,但我已经在活动中...

    不,onActivityResult() 有不同的目的。您要做的是在您的视图中实现普通侦听器,然后将您的活动附加到视图的侦听器(与 OnClickListener 相同的方式)。这样,您的视图将能够在需要时回调并以这种方式触发 Activity 中的某些操作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-04
      • 2020-07-04
      相关资源
      最近更新 更多