2012-08-26 24 views
2

大家好,我試圖從apprequest邀請中獲取返回的值,所以我這樣做了;Apprequest DialogListener的返回包數組類型

public void onComplete(Bundle values) { 
final int[] to = values.getIntArray("to"); 
int n = to.length 
} 

但是當我使用的變量n這是logcat的:

08-26 18:40:04.312: E/AndroidRuntime(6464): java.lang.NullPointerException 

我已經tryed與getIntArray,getFloatArray,getLongArray,getStringArray但沒有任何工程。如果我看Facebook的開發者頁面它說:

An array of the recipient user IDs for the request that was created. 

但它沒有說什麼是數組類型。謝謝

+1

您可以使用values.keySet()來檢查密鑰是否存在。 – nandeesh

+0

關鍵是因爲如果我做values.toString();它返回Bundle [{to [0] = 1717519348,request = 510342092684268}] –

回答

4

感謝nandeesh的提示,我發現奇怪的是,我們無法檢索數組類型的數據。

應該用不同的密鑰來檢索每個收件人用戶的ID。

我試了下面的代碼,它現在可以工作。

Set<String> keys = values.keySet(); 
int userNum = values.keySet().size() - 1; 
for (int i = 0; i < userNum; i++) { 
    Log.d("user IDs", values.getString("to[" + String.format("%1$d", i) + "]")); 
} 
+0

values.keySet();是一組。我如何做-1如果是一個字符串,而不是一個數字? –

+0

對不起,應該是values.keySet()。size() - 1. 我已經更正了上面的答案。 – LinzyHu

+0

非常感謝。請爲將來的用戶編輯你的答案:) –