2014-02-10 21 views

回答

2

我怎樣才能將此列表從一項活動傳遞給其他人?

然後讓這個列表靜態就像這樣:

public static List< Double> list_r = new ArrayList<Double>(); 

而在其他活動進入這個名單是這樣的:

private List<Double> list_my = ClassName.list_r; 

classname即你的活動其中包括(名單<雙> list_r)。

但請確保我只是顯示一個傳遞列表的方式。但通過製作列表靜態即使您已完成使用該arrayList,它也會消耗內存。

0

使用intent.putExtra();

intent.putExtra("array_list", list_r); 
+2

'列表< Double>'類型是雙重沒有字符串和列表不執行可序列化 – Raghunandan

+0

@Raghunandan然後我該如何做到。請告訴 – Matthew

+0

@aav按照你的問題,而不是列表使用ArrayList – Raghunandan

0
intent.putExtra("list",list_r); 
現在

上的onCreate其他活動:

getIntent().getParcelableArrayListExtra("list"); 
+0

http://docs.oracle.com/javase/7/docs/api/java/util/List.html下提供的鏈接。列表沒有實現可序列化的 – Raghunandan

1

你可以使用double[]以及putExtra(String, double[])getDoubleArrayExtra(String)

或者你可以用putExtra(String, Serializable)getSerializableExtra(String)(該ArrayList部分是很重要的,因爲它是Serializable,但List接口不是)一起使用ArrayList<Double>

0

將double轉換爲字符串,並將其放入ArrayList中。
在活動提供的數據,使用意向#putExtra():

double double1 = 0.05; 
double double2 = 0.02; 
ArrayList <String []> list = new ArrayList <String[]>(); 
list.add (new String [] {String.valueOf(double_1),String.valueOf(double_2)}); 
Intent i = new Intent (this,YourTargetActivity.class); 
i.putExtra("list", list); 
startActivity(i); 

然後檢索,使用意向#getSerializableExtra(),並轉換爲ArrayList的:

ArrayList <String[]> list = (ArrayList<String[]>) getIntent().getSerializableExtra("list"); 
double double1 = Double.parseDouble(list.get(0)[0]) ; 
double double1 = Double.parseDouble(list.get(0)[1]) ; 
+0

誓言,我認爲這是可以做到的最難的方法。上面的答案比這更容易。 –