Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.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 发送ArrayList<;浮动>;活动之间_Java_Android_Arraylist - Fatal编程技术网

Java 发送ArrayList<;浮动>;活动之间

Java 发送ArrayList<;浮动>;活动之间,java,android,arraylist,Java,Android,Arraylist,我必须从名为“subZ”(它有252个元素)的ArrayList中存储的值中绘制一个图。在我的主要活动中,我存储值,然后在下一个活动中,我必须绘制 所以我这样发送: Intent change_screen = new Intent(MeasureScreenActivity.this, ResultScreenActivity.class); //Send variables to another activity change_screen.putExtra("standard_measur

我必须从名为“subZ”(它有252个元素)的ArrayList中存储的值中绘制一个图。在我的主要活动中,我存储值,然后在下一个活动中,我必须绘制

所以我这样发送:

Intent change_screen = new Intent(MeasureScreenActivity.this, ResultScreenActivity.class);
//Send variables to another activity
change_screen.putExtra("standard_measurement",standard_measurement);
change_screen.putExtra("current_measurement",current_measurement);
change_screen.putExtra("subZ", subZ);
startActivity(change_screen);
//Effect of transition
overridePendingTransition(R.anim.fade_in,R.anim.fade_out);
finish();
在另一项活动中,我是这样接受的:

//Store the data passed from MeasureScreenActivity
Intent intent = getIntent();
Bundle bundle = intent.getExtras();

//Make sure that bundle is not null
if(bundle != null) {
    standard_measurement = (String) bundle.get("standard_measurement");
    current_measurement = (int) bundle.get("current_measurement");
    subZ = (ArrayList<Float>) bundle.get("subZ");
}
并使用putExtra(String,Float[])方法以与以前相同的方式发送

我不知道哪一个是最好的方法,因为我不想让主线程饱和

我想的另一种方式是在主要活动中画图,然后将画图发送到下一个活动以显示它。但我不知道这是否可能


这三个选项中的哪一个会减少主线程的饱和?Sergio,答案是
putParcelableArrayListExtra()


但安卓系统的架构组件中有一些新的东西。使用LiveData将数组保存在ViewModel中,可以通过活动共享该数组

Sergio,答案是
putParcelableArrayListExtra()


但安卓系统的架构组件中有一些新的东西。使用LiveData将数组保存在ViewModel中,可以通过活动共享该数组

您可以使用
change_screen.putStringArrayListExtra(“subZ”,subZ)而不是

change_screen.putExtra(“subZ”,subZ)

您可以使用
change_screen.putStringArrayListExtra(“subZ”,subZ)而不是

change_screen.putExtra(“subZ”,subZ)

您是否尝试使用Serializable

ArrayList<Float> list = new ArrayList<>();
Intent i = new Intent(MeasureScreenActivity.this, ResultScreenActivity.class);
i.putExtra("arg_key", list);
ArrayList list=new ArrayList();
意图i=新意图(MeasureScreenActivity.this、ResultScreenActivity.class);
i、 putExtra(“arg_键”,列表);
额外获得

ArrayList<Float> list = ( ArrayList<Float>) getIntent().getSerializableExtra("arg_key");
ArrayList list=(ArrayList)getIntent().getSerializableExtra(“arg_键”);

您是否尝试使用Serializable

ArrayList<Float> list = new ArrayList<>();
Intent i = new Intent(MeasureScreenActivity.this, ResultScreenActivity.class);
i.putExtra("arg_key", list);
ArrayList list=new ArrayList();
意图i=新意图(MeasureScreenActivity.this、ResultScreenActivity.class);
i、 putExtra(“arg_键”,列表);
额外获得

ArrayList<Float> list = ( ArrayList<Float>) getIntent().getSerializableExtra("arg_key");
ArrayList list=(ArrayList)getIntent().getSerializableExtra(“arg_键”);

我也尝试过putParcelableArrayListExtra()选项,但它给出了一个错误,因为Float不是从parcelabel扩展而来的。最后,我让它像以前一样,它对主线程来说似乎不那么沉重。Gio,阅读有关体系结构组件的内容,使用ViewModel,您将不必再担心这一点。尝试一下并不是那么难。我也尝试过putParcelableArrayListExtra()的选项,但它给出了一个错误,因为Float不是从parcelabel扩展而来的。最后,我让它像我曾经做过的那样,它对主线程来说似乎没有那么沉重。Gio,阅读有关体系结构组件的内容,使用ViewModel,您将不必再担心这一点。试一试并不是那么难。这个函数是对ArrayList的,我有ArrayList。所以我必须在发送它之前进行强制转换,然后在接收它时进行其他强制转换?这个函数是到ArrayList的,我有ArrayList。所以我必须在发送之前进行施法,然后在接收时进行其他施法?