Как я могу использовать эту функцию nativeAd.getCallToAction в NativeAd?

Я пытался понять, как реализовать nativeAd, но понятия не имею, как реализовать CallToAction в кнопке.

Я инициализировал объявление:

      private void nativeAdView() {
        MobileAds.initialize(requireContext());
        AdLoader adLoader =
                new AdLoader.Builder(requireContext(), ID_NATIVE_AD_TEST)
                        .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
                            @Override
                            public void onNativeAdLoaded(@NonNull NativeAd nativeAd) {

                                SubFragmentExpenseList.this.nativeAd = nativeAd;

                                //Creates an container for the adView
                                FrameLayout frameLayout = requireView().findViewById(R.id.fl_adplaceholder);
                                //Gets the nativeView to be placed inside the frameLayout
                                NativeAdView adView = (NativeAdView) getLayoutInflater().inflate(R.layout.native_ad_layout, null);
                                populateNativeAdView(nativeAd, adView);

                                frameLayout.removeAllViews();
                                frameLayout.addView(adView);
                            }
                        }).build();

        //Creates an default adRequest without specific public ads like age
        adLoader.loadAd(new AdRequest.Builder().build());
}

// Заполняем объявление:

      private void populateNativeAdView(NativeAd nativeAd, NativeAdView adView) {
        //Populate and register the asset views
        ImageView imageView = adView.findViewById(R.id.imageView_ad_image);
        TextView textViewHeadLine = adView.findViewById(R.id.textView_ad_headline);
        TextView textViewBody = adView.findViewById(R.id.textView_ad_body);
        Button actionButton = adView.findViewById(R.id.button_ad_call_to_action);

        //Registering the View to the adView
        adView.setHeadlineView(textViewHeadLine);
        adView.setBodyView(textViewBody);
        adView.setImageView(imageView);
        adView.setCallToActionView(actionButton);

        //This final step registers the native ad object with the view that's responsible for displaying it
        adView.setNativeAd(nativeAd);

        //Populating the View
        if (adView.getImageView() == null) {
            imageView.setVisibility(View.GONE);
        } else {
            imageView.setImageDrawable(nativeAd.getImages().get(0).getDrawable());
            imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
        }
        if (adView.getHeadlineView() == null) {
            textViewHeadLine.setText(nativeAd.getHeadline());
        } else {
            textViewHeadLine.setVisibility(View.GONE);
        }
        if (adView.getBodyView() == null) {
            textViewBody.setText(nativeAd.getBody());
        } else {
            textViewBody.setVisibility(View.GONE);
        }
        if (adView.getCallToActionView() == null) {
            actionButton.setVisibility(View.GONE);
        } else {
            actionButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    try {
                        startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(nativeAd.getCallToAction())));
                    } catch (android.content.ActivityNotFoundException appNotFound) {
                        appNotFound.printStackTrace();
                    }
                }
            });
        }
    }

// Но я не знаю, как использовать getCallToAction, метод, который я создал, просто открывает магазин воспроизведения, но не на странице, так что, вероятно, это неправильно.

0 ответов

Другие вопросы по тегам