Java 如何从另一个活动获取ArrayList到另一个活动
我的RetrieveActivity.java中有一个arraylist,我想将它转移到另一个活动GraphActivity.java中。我需要那个arraylist数据在我的GraphActivity中生成图形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
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,我不太明白您想做什么,抱歉^^