1

私はAndroidのアプリ化サービスにまったく慣れていないので、少し複雑なようです。実装するための初期手順はすべて実行しましたが、購入状態で立ち往生しています(そう思う)。リストビューと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
        }

しかし、それはリストビューのテキストを変更することはなく、クイズをプレイすることもできません。どうすればこれを行うことができるか、どこに間違いがありますか? ありがとう

4

1 に答える 1

1

データをどのように表示していますか?

リストビューと配列アダプターを使用している場合は、呼び出す必要がありますadapter.notifyDataSetChanged();。これにより、情報が更新されたことをアダプターに通知し、リストを更新できます。配列アダプターを使用していない場合はfindViewById(int)、ビューを呼び出して動的に変更できます。

于 2012-06-19T22:38:04.430 に答える