Передать аргумент в AIDL

1

У меня есть функция в файле AIDL

int getAvailableTokens(out List<String> list);

Из основного класса я хочу вызвать эту функцию и List<String> mylist в качестве аргумента List<String> mylist в функции порядка, которая установит его. Как я могу это сделать?

РЕДАКТИРОВАНИЕ

int getAvailableTokens (List<FidoTokenInfo> list) throws RemoteException {
    // EDITED: The list must be set in this way!!!
    list.addAll(mFidoDsm.getList());
    // THIS WAY IS NOT CORRECT !!!
    // list = mFidoDsm.getList();
    Log.i(TAG, "list .size() = " + list.size()); // here list size is 1.
}


// First this function calles.
public List<FidoTokenInfo> getAllTokens () throws FidoException {
    List<String> tokenList = new ArrayList<String>();;

    try {
       int error = dsmService().getAvailableTokens(tokenList);
       Log.i(TAG, "tokenList.size() = " + tokenList.size()); // here list size is 0.
       return tokenList;
    } catch (RemoteException e) {
    }
}

Okey Я внес некоторые изменения, и вот мой код, так как вы можете видеть, что я getAvailableTokens функцию getAvailableTokens из функции getAllTokens и getAllTokens в качестве аргумента getAvailableTokens list tokenList затем в getAvailableTokens я установил этот список, а затем я проверяю размер, getAvailableTokens 1, но когда Я проверяю размер списка tokenList но почему?

Теги:
function
aidl

1 ответ

1
Лучший ответ

В вашем файле.aidl вы должны добавить inout вместо out. В этом случае в вашем основном классе вы должны инициализировать список:

List<String> myList = new ArrayList<String>();
int error = getAvailableTokens(mylist);
int size = myList.size();
  • 0
    это не работает для меня список все еще пуст :(
  • 0
    Я сделал некоторые изменения в моем вопросе, пожалуйста, посмотрите его, спасибо большое !!!
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню