0

我在谷歌inapp上工作,下面是我的代码我想获取我所有inapp产品的所有信息,但是如何将arraylist对象与字符串进行比较,它在for循环“无法将元素类型对象转换为字符串”时显示错误

ArrayList skuList = new ArrayList();
       skuList.add("premiumUpgrade"); 
       skuList.add("gas");
       Bundle querySkus = new Bundle();
       querySkus.putStringArrayList("ITEM_ID_LIST", skuList);

       Bundle skuDetails = mService.getSkuDetails(3, getPackageName(),"inapp", querySkus);

       int response = skuDetails.getInt("RESPONSE_CODE");
       if (response == 0)
       {
           ArrayList responseList 
              = skuDetails.getStringArrayList("DETAILS_LIST");

           for (String thisResponse : responseList)
           {
               JSONObject object = new JSONObject(thisResponse);
               String sku = object.getString("productId");
               String price = object.getString("price");
               if (sku.equals("premiumUpgrade")) 
               {
                  // mPremiumUpgradePrice = price;
                   Log.i("price", price);
               } else if (sku.equals("gas")) { 
                  // mGasPrice = price;
                   Log.i("price", price);
               }
           }
       }
4

2 回答 2

0

好的,您是否尝试这样做:将 STRING 添加到 ArrayList 的定义中

ArrayList<String> responseList 
              = skuDetails.getStringArrayList("DETAILS_LIST");

因为您没有定义数组列表中的内容,所以它不能盲目地投射。

于 2013-08-27T14:01:46.680 回答
0

我有这个问题有一段时间了。为我解决的问题是确保清单中的版本代码和版本名称与我的 google play 开发控制台上的一致。

从技术上讲,要使这些服务正常工作,您的应用程序必须“发布”,但是将版本代码和版本名称与您发布的版本的代码和名称相匹配也可以解决问题。

希望这可以帮助!:)

于 2015-01-13T19:17:29.113 回答