我对android中的appbiling服务完全陌生,对我来说似乎有点复杂,我已经完成了所有的初始程序来实现它,但是我陷入了购买状态(我想是的)。我有一个列表视图和 onitem 点击监听器我已经这样做了:
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
purchaseposition= position;
if(list.get(position).getPurchase().contentEquals("Buy")){
val = billingService.requestPurchase("android.test.purchased", payloadContents);
}else{
SharedPreferences.Editor editor = preference.edit();
editor.putInt("URLPOSITION", position);
editor.commit();
Intent quiz=new Intent("com.powergroupbd.appbil.QUIZACTIVITY");
startActivity(quiz);
}
}
这意味着如果列表视图包含文本“购买”,那么我将使用测试购买 ID 向市场发送购买请求。现在我希望如果购买成功,那么我将更改列表视图的文本“购买”以“播放”并启用测验。但这是我认为我错过了一切的部分。在购买状态更改中,我编写了以下代码来执行此操作:
@Override
public void onPurchaseStateChange(PurchaseState purchaseState,
String itemId, int quantity, long purchaseTime,
String developerPayload) {
if (Consts.DEBUG) {
Log.i("Tag", "onPurchaseStateChange() itemId: " + itemId + " "
+ purchaseState);
}
if (purchaseState == PurchaseState.PURCHASED) {
ownedItems.add(itemId);
list.get(purchaseposition).setPurchase("Play");
}
// YOU can also add other checks here
}
但它永远不会改变列表视图的文本,我永远无法进行测验,请我需要一个完整的想法我该怎么做,我的错误在哪里?谢谢