2014-12-12 3 views
-1

Объект Bundle не позволяет мне передать массив Double [], потому что для этого требуется массив double []. Я не могу использовать double [] для Double [], и я не знаю, что делать.Как передать массив Double [] в другую активность

Помогите мне пожалуйста.

+2

Просьба указать [SSCCE] (http://sscce.org/), чтобы уточнить возникшую у вас проблему. –

+0

Почему вы не делаете, чтобы создать Double [] вручную, и копировать из double [] – Adem

+0

В соответствии с [этот очень похожий вопрос] (http://stackoverflow.com/questions/1109988/how-do-i-convert-double -to-double), единственная опция - это цикл и распаковка (или бокс в вашем случае) массива - сторонней библиотекой или вашим собственным кодом. – snickers10m

ответ

1

Вы можете пройти через массив Double и заполнить двойной массив, присвоив каждому значению результат Double.doubleValue(); Как только это будет сделано, вы можете поставить двойной [] массив в Bundle

Double D[]; 
double d[]; 
for(int i=0 ; i<D.length ; ++i) { 
    d[i] = D[i]; 
} 

Конечно, я не инициализирует переменные, но это просто привести пример

Обновление
Для тех, кто читает это Я также нашел этот похожий вопрос, который может быть полезен. Он позволяет использовать стороннюю библиотеку для решения этой проблемы, и некоторые комментарии добавляют некоторую приятную информацию о производительности в разных сценариях. Проверьте это: How do I convert Double[] to double[]?

+0

Нет необходимости делать это. 'Double' ** (автобокс и unboxed) (https://docs.oracle.com/javase/tutorial/java/data/autoboxing.html) **. Хотя это объект, его можно использовать как значение. – hellaminx

+0

@scheisse_minelli, тогда, пожалуйста, объясните, как можно было бы положить Double [] в Bundle с помощью Unboxing –

+0

О, sheesh, я думаю, что я не читал вопрос достаточно ясно. Ты прав. – hellaminx

Смежные вопросы