1

AIDL ファイルに関数があります

int getAvailableTokens(out List<String> list);

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) {
    }
}

わかりましたいくつかの変更を加えました。これが私のコードです。ご覧のとおり、getAvailableTokens関数からgetAllTokens関数を呼び出し、引数としてgetAvailableTokensリストに渡しますtokenList。次に、getAvailableTokensそのリストを設定し、サイズを確認しますが、リストのサイズを確認すると、tokenListそれは0ですが、なぜですか?

4

1 に答える 1

1

.aidl ファイルに、.aidlinoutの代わりに追加する必要がありoutます。この場合、メイン クラスでリストを初期化する必要があります。

List<String> myList = new ArrayList<String>();
int error = getAvailableTokens(mylist);
int size = myList.size();
于 2012-06-26T18:42:23.733 に答える