Android: кнопка «Сделать» исчезает сразу после успешной покупки с использованием Iab Billing Processor - PullRequest
0 голосов
/ 26 августа 2018

Как сделать так, чтобы кнопка покупки исчезла сразу после успешной покупки с использованием Iab Billing Processor в моем приложении?

Я использую нижнюю навигацию с фрагментами для страниц. У меня есть три страницы фрагмента. На третьей странице фрагмента у меня есть кнопка, которая является опцией покупки в приложении. Все работает нормально, моя единственная проблема в том, что, когда покупка прошла успешно, кнопка покупки не исчезнет, ​​и не появится всплывающее окно, подтверждающее, что покупка прошла успешно, хотя я добавил ее в метод onProductPurchased. Я должен нажать кнопку покупки во второй раз, чтобы вытащить метод ниже. Я не хочу этого Я хочу, чтобы приведенный ниже метод вытащил сразу после покупки.

Вот что у меня есть для метода onProductPurchased и других методов:

@Override
public void onProductPurchased(@NonNull String productId, @Nullable 
TransactionDetails details) {
    removeAds.setVisibility(View.GONE);
    Toast.makeText(getContext(), "Purchase Complete! Thank You!", 
    Toast.LENGTH_SHORT).show();
    } 

@Override
public void onPurchaseHistoryRestored() {
removeAds.setVisibility(View.GONE);
Toast.makeText(getContext(), "Your Purchase has been restored!", 
Toast.LENGTH_SHORT).show();
}


@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
removeAds.setVisibility(View.VISIBLE);
Toast.makeText(getContext(), "Purchase Failed!", 
Toast.LENGTH_SHORT).show();
}

@Override
public void onBillingInitialized() {
bp.loadOwnedPurchasesFromGoogle();
}

Кажется, что onActivityResult не извлекает requestCode, resultCode и не извлекает данные Intent. Я пробовал это двумя способами, но безрезультатно.

Способ 1 (сбой):

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

}

Способ 2 (сбой):

@Override
 public void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
    Fragment f = getFragmentManager().findFragmentById(this.getId());
    f.onActivityResult(requestCode, resultCode, data);
    }

Они оба не работают.

@Override
public void onDestroy() {
if (bp != null) {
    bp.release();
}
super.onDestroy();
}

Начало моего урока Java:

public class MenuOptions extends Fragment implements 
BillingProcessor.IBillingHandler {
private static final String ARG_PARAM1 = "param1";
private static final String ARG_PARAM2 = "param2";

private String mParam1;
private String mParam2;

BillingProcessor bp;

private OnFragmentInteractionListener mListener;

public MenuOptions() {

}

public static MenuOptions newInstance(String param1, String param2) {
MenuOptions fragment = new MenuOptions();
Bundle args = new Bundle();
args.putString(ARG_PARAM1, param1);
args.putString(ARG_PARAM2, param2);
fragment.setArguments(args);
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (getArguments() != null) {
    mParam1 = getArguments().getString(ARG_PARAM1);
    mParam2 = getArguments().getString(ARG_PARAM2);
 }
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                     Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_menu_options, container, 
false);

bp = new 

BillingProcessor(Objects.requireNonNull(getActivity())
.getApplicationContext(), null, MenuOptions.this);

removeAds.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        bp.purchase(getActivity(), "android.test.purchased");
    }
});

return v;

}

Я думаю, что кнопка покупки не исчезает сразу после успешной покупки из-за неправильного извлечения requestCode и resultCode. Я проверил это, и это, кажется, ничего не тянет. Ничто из того, что я делаю, не решает эту проблему. Я искал в Интернете свою проблему и нашел тот же вопрос, но, к сожалению, ответы не решили мою проблему. Я никогда не делал опционы на покупку с фрагментами раньше. Есть ли что-то, что я забываю? Я ценю помощь в продвинутом!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...