Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/332.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,我的RetrieveActivity.java中有一个arraylist,我想将它转移到另一个活动GraphActivity.java中。我需要那个arraylist数据在我的GraphActivity中生成图形 public class GraphActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCre

我的RetrieveActivity.java中有一个arraylist,我想将它转移到另一个活动GraphActivity.java中。我需要那个arraylist数据在我的GraphActivity中生成图形

public class GraphActivity extends Activity 
{

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_graph);    
    }


}
这是我的RetrieveActivity.java代码

public class RetrieveActivity extends Activity 
{

    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_retrieve);
    }
private class MyAsyncTask extends AsyncTask<String, Void, String>
{   



    public ArrayList<String> tempList=new ArrayList<String>();
    public ArrayList<String> dataList=new ArrayList<String>();
    public ArrayList<String> atList=new ArrayList<String>();
    public ArrayList<String> timeList=new ArrayList<String>();
}
}

提前进行tq

在RetrieveActivity类中,执行以下操作:

Intent intent = new Intent(RetrieveActivity.this, GraphActivity.class);
intent.putStringArrayListExtra("list1", mArrayList1);
intent.putStringArrayListExtra("list2", mArrayList2);
intent.putStringArrayListExtra("list3", mArrayList3);
startActivity(intent);
然后在GraphActivity中,执行以下操作以检索列表:

Intent i = getIntent();  
ArrayList<String> newList1 = i.getStringArrayListExtra("list1");
ArrayList<String> newList2 = i.getStringArrayListExtra("list2");
ArrayList<String> newList3 = i.getStringArrayListExtra("list3");

您还可以将ArrayList声明为

public static ArrayList<String> tempList=new ArrayList<String>();
在您的GraphActivity中,您可以使用

ArrayList newList1=RetrieveActivity.templast`

迟来的回答,但很好 声明一个实现Parcelable的对象,实现所有方法。 在编写读写方法时,请注意,所有变量的方式必须相同。 然后用数据填充此对象,并将此对象添加到ArrayList中,该ArrayList是您先前创建的对象类型

然后创建intent和Bundle,并将此Arraylist放入其中

          Intent intentTest = new Intent(MainActivity.this, Calculation.class);
            data.putParcelableArrayList("test",  Razlike);
            intentTest.putExtra("dataS", data);
            //Log.i("intentCheck",String.valueOf(intentTest.getParcelableArrayListExtra("test").size()));
            startActivity(intentTest);
在其他活动中,请阅读,仅此而已


快乐编码

您会从RetrieveActivity开始GraphActivity吗?如果是这样,本教程将说明如何在启动活动时向意图添加额外数据:@jpdelacroix是的,我将通过按钮在retrieveActivity中启动它,tq为您提供有用的信息,我可以知道意图吗。putStringArrayListExtralist,dataList;这种形式正确吗?如果2个数组列表将被传输。。。这是不是意味着我有另一个意图。putStringArrayListExtraalist,atList?是的,只需在usinf content.putStringArrayListExtralist1,mArrayList1中传递另一个列表;同样,我更新了答案,向您展示了这一点。我是否可以知道我应该将该意图放在asynctask类或retrieve activity类中?您应该将其放在asynctask类的onPostExecute方法中。这样,当任务完成时,它会将ArrayList放入intent并启动新的活动。由于ArrayList是异步任务的私有项,因此将列表设置为全局列表,然后在异步任务中更新它们,而不是声明它们。然后,您可以在RetrieveActivity中使用更新后的值。至于onPostExecute,我不太明白您想做什么,抱歉^^