我在尝试从匿名类中获取某些值并将它们分配给全局变量pDescr
和pPrice
时遇到问题。
public class ListActivity extends AppCompatActivity {
private String[] pDescr;
private String[] pPrice;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list);
...
iabHelper = new IabHelper(this, base64EncodedPublicKey);
iabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
public void onIabSetupFinished(IabResult result) {
// creating skuList here
...
pDescr = new String[skuList.size()];
pPrice = new String[skuList.size()];
iabHelper.queryInventoryAsync(true, skuList, new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv) {
for (int i = 0; i < skuList.size(); i++) {
pDescr[i] = inv.getSkuDetails(skuList.get(i)).getDescription();
pPrice[i] = inv.getSkuDetails(skuList.get(i)).getPrice();
}
}
});
}
});
...
我没有收到任何错误,但pDescr和pPrice始终保持null
。 inv.getSkuDetails(skuList.get(i)).getDescription();
和inv.getSkuDetails(skuList.get(i)).getPrice();
显然正在返回字符串..我检查了它,但将它们打印到日志中。
我的错误在哪里?
编辑:
这是skuList的代码,虽然它并不重要
final ArrayList<String> skuList = new ArrayList<String>();
for (int i = 0; i < productsIDs.length; i++) {
skuList.add(productsIDs[i]);
}
productIDs是一个从json中检索到ID的数组。它中有正确的值,双重检查。