Скрыть рекламный баннер с оплатой в приложении

Как удалить рекламные баннеры и текстовое представление после того, как пользователь совершил покупку с выставлением счетов в приложении. После того, как пользователь произвел платеж, баннер и текст исчезают, но как только они закрывают приложение и снова открывают его, баннер и текстовое представление по-прежнему отображаются, но разница заключается в том, что когда они нажимают на текстовое представление, тост "Спасибо для вашей покупки", после чего текст и баннер исчезают. Как я могу заставить их вообще не появляться при oncreate. Благодарность

введите здесь описание изображения

ГЛАВНОЕ

public class MainActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler{
BillingProcessor bp;
AdView Adview;
TextView textView6;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    bp = new BillingProcessor(this, "YOUR LICENSE KEY FROM GOOGLE PLAY CONSOLE HERE", this);
    MobileAds.initialize(this,"ca-app-pub-3940256099942544~3347511713");
    Adview=findViewById(R.id.adView);
    textView6=findViewById(R.id.textView6);
    AdRequest adRequest = new AdRequest.Builder()/*.addTestDevice("")*/.build();
    Adview.loadAd(adRequest);

}
public void onClickAds(View view){
    bp.purchase(MainActivity.this, "android.test.purchased");
}

@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {

    Toast.makeText(this, "Thank you for your purchase",Toast.LENGTH_LONG).show();
    ViewGroup parent1 = (ViewGroup) Adview.getParent();
    ViewGroup parent2 = (ViewGroup) textView6.getParent();
    parent1.removeView(Adview);
    parent2.removeView(textView6);
    parent1.invalidate();
    parent2.invalidate();
    }

@Override
public void onPurchaseHistoryRestored() {

}

@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
    Toast.makeText(this, "AN ERROR OCCURED.",Toast.LENGTH_LONG).show();
}

@Override
public void onBillingInitialized() {

}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (!bp.handleActivityResult(requestCode, resultCode, data)) {
        super.onActivityResult(requestCode, resultCode, data);
    }
}
@Override
public void onDestroy() {
    if (bp != null) {
        bp.release();
    }
    super.onDestroy();
}

}

XML

   <com.google.android.gms.ads.AdView xmlns:ads="http://schemas.android.com/apk/res-auto"

    android:id="@+id/adView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    ads:adSize="BANNER"
    ads:adUnitId="ca-app-pub-3940256099942544/6300978111"
    ads:layout_constraintBottom_toBottomOf="parent"
    ads:layout_constraintEnd_toEndOf="parent"
    ads:layout_constraintStart_toStartOf="parent"
    ads:layout_constraintTop_toBottomOf="@+id/constraintLayout"
    ads:layout_constraintVertical_bias="0.42"></com.google.android.gms.ads.AdView>

<TextView
    android:id="@+id/textView6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:onClick="onClickAds"
    android:text="Don't like seeing ads? Tap Here!"
    android:textColor="@android:color/background_light"
    android:textStyle="bold|italic"
    app:layout_constraintBottom_toTopOf="@+id/adView"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent" />

person Grey    schedule 16.07.2018    source источник


Ответы (1)


Попробуйте использовать общие настройки для этой проблемы

следующий шаг поможет вам

шаг 1. Инициализировать сверху

private static final String PREF_FILE  = "PREF_FILE";
private static final String IS_PRODUCT_PURCHASE = "IS_PRODUCT_PURCHASE";

шаг 2. внутри метода onProductPurchased() добавьте эту строку

SharedPreferences.Editor editor = getSharedPreferences(PREF_FILE, MODE_PRIVATE).edit();
    editor.putBoolean(IS_PRODUCT_PURCHASE,true);
    editor.commit();

setp 3. вызовите этот метод внутри onCreate(), наконец

private void checkForIsPurchase() {
    SharedPreferences preferences = getSharedPreferences(PREF_FILE, MODE_PRIVATE);
    boolean isPurchase = preferences.getBoolean(IS_PRODUCT_PURCHASE, false);
    if (isPurchase) {
        Adview.setVisibility(View.GONE);
        textView6.setVisibility(View.GONE);
    }
}
person Vishnu Magar    schedule 16.07.2018
comment
Проблемы всегда хорошо приходят. - person Vishnu Magar; 17.07.2018