2015-12-09 10 views
1

У меня есть файл AIDL, где я хочу вернуть список целых чисел. Просто нравится:Android AIDL Список целых чисел

interface blah { 
    List<Integer> getSubscriptionsForUser(int user); 
} 

Но я не могу этого сделать, потому что AIDL не поддерживает java.lang.Integer он поддерживает только примитивы. Но я не могу сделать список примитивов, потому что java не поддерживает типы примитивов.

Нужно ли мне сделать специальный класс, чтобы сделать список целых чисел, которые я могу передать через связующее? Или есть что-то очевидное, я просто отсутствую.

+4

не просто использовать массив? 'int []' – Blundell

+0

omg ... сделать это ответом и получить некоторые очки –

+0

ленился, поскольку вы должны действительно объяснить в ответ :-) – Blundell

ответ

3

Вы можете использовать int[] с интерфейсами AIDL

http://developer.android.com/guide/components/aidl.html#Create


Чтобы создать массив, который вы можете использовать:

https://stackoverflow.com/a/9572820/413127

List<Integer> list = ...; 
int[] array = new int[list.size()]; 
for(int i = 0; i < list.size(); i++) { array[i] = list.get(i) }; 

Чтобы создать свой список обратно на с другой стороны вы можете использовать этот метод:

https://stackoverflow.com/a/2607335/413127

Integer[] array = new Integer[]{1, 2, 3}; 
List<Integer> list = Arrays.asList(array); 
Смежные вопросы