Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用接口通过两个活动传递数据_Java_Android_Performance_Android Activity_Interface - Fatal编程技术网

Java 使用接口通过两个活动传递数据

Java 使用接口通过两个活动传递数据,java,android,performance,android-activity,interface,Java,Android,Performance,Android Activity,Interface,我必须将大量数据从“活动1”传递到“活动2”。这些数据在一个本身有很多子类的POJO上压缩 所以,我想我需要通过一个接口来传递这些数据,这是因为我需要使用以前的数据来调用web服务。但是在到达web服务时,数据是空的 实际上,这是我的代码,但不起作用: public class FirstActivity extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState) { ....

我必须将大量数据从“活动1”传递到“活动2”。这些数据在一个本身有很多子类的POJO上压缩

所以,我想我需要通过一个接口来传递这些数据,这是因为我需要使用以前的数据来调用web服务。但是在到达web服务时,数据是空的

实际上,这是我的代码,但不起作用:

public class FirstActivity extends AppCompatActivity {
  protected void onCreate(Bundle savedInstanceState) {
      ....
  }

  @Override
  public void onClick(View v) {
    switch (v.getId()) {
        case R.id.continue_button:
            continueToNewScreen();
            break;
    }
  }

  private void continueToNewScreen() {
    if (infoResult != null && infoResult.size() > 0) {
        eventsListener = new SecondActivity();
        eventsListener.callback(myObjectToSend);
        //send data to the next activity and start it.
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        startActivity(intent);
    }
  }
}


public class SecondActivity extends AppCompatActivity implements EventsListener {
      protected void onCreate(Bundle savedInstanceState) {
          configurateView();
          manageEvent();
      }

    @Override
    public void callback(InfoEvent event) {
        Log.d("callback", "callback: ");
        //here the object is informed
        infoEvent = event;

    }

  private void manageEvent() {
    //call web service with the info from the last activity
    //here the object is null
  }
} 
您需要使用
putExtra()
方法和或将一些数据从一个活动发送到另一个活动。 实际上,在您的情况下,您必须使您的
myObjectToSend
类实现
可序列化
可打包
,然后借助
putExtra()
方法传递它

在第一项活动中:

intent.putExtra("KEY", myObjectToSend);
哪个
键可以是在SecondActivity中获取此对象的常量

在SecondActivity
onCreate()
方法中:

if (savedInstanceState == null) {
    Bundle extras = getIntent().getExtras();
    if(extras == null) {
        yourObjectToReceive = null;
    } else {
        yourObjectToReceive = (YourObjectToReceiveClass) extras.getSerializable("KEY");
    }
} else {
    yourObjectToReceive = (YourObjectToReceiveClass)savedInstanceState.getSerializable("KEY");
}