簡體   English   中英

單擊按鈕如何在方法內部調用方法? (Android Java)

[英]How to call a method inside a method, on click of a button? (Android Java)

我創建了這樣的方法,它包含更多方法。 但是,我不知道是否需要頂級方法appNextCallAd() 我想澄清一下單擊按鈕時調用adLoaded()方法的最佳實踐是什么。 我應該上這個課嗎? 如果是,怎么辦? 如果必須從多個活動中調用adLoaded() ,最好的方法是什么? 謝謝。

public void appNextCallAd() {
    // Get callback for ad loaded
    interstitial_Ad.setOnAdLoadedCallback(new OnAdLoaded() {
        @Override
        public void adLoaded() {
            interstitial_Ad.showAd();
        }
    });
    // Get callback for ad opened
    interstitial_Ad.setOnAdOpenedCallback(new OnAdOpened() {
        @Override
        public void adOpened() {

        }
    });
    // Get callback for ad clicked
    interstitial_Ad.setOnAdClickedCallback(new OnAdClicked() {
        @Override
        public void adClicked() {

        }
    });
    // Get callback for ad closed
    interstitial_Ad.setOnAdClosedCallback(new OnAdClosed() {
        @Override
        public void onAdClosed() {

        }
    });
    // Get callback for ad error
    interstitial_Ad.setOnAdErrorCallback(new OnAdError() {
        @Override
        public void adError(String error) {
            switch (error) {
                case AppnextError.NO_ADS:
                    Log.v("appnext", "no ads");
                    break;
                case AppnextError.CONNECTION_ERROR:
                    Log.v("appnext", "connection problem");
                    break;
                default:
                    Log.v("appnext", "other error");
            }
        }
    });
}

這是按鈕單擊事件;

private OnClickListener cancelBtn = new OnClickListener() {
        @Override
        public void onClick(View V) {
            try {
                InputMethodManager inputManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
                inputManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
            } catch (NullPointerException ex) {
                Log.e("TEST2", ex.toString());
            }
           //How to call adLoaded() here?!
        }
    };

當調用設置回調的方法時,只需使用“ this”並實現接口即可。

您的課程如下:

class yourclass implements OnAdLoaded {
    public void appNextCallAd() {
    // Get callback for ad loaded
        interstitial_Ad.setOnAdLoadedCallback(this);
        ...
    }

    ...

    @Override
    public void adLoaded() {
        ... do your stuff...
    }

那么您就可以從onClick調用adLoaded方法。 我建議這樣做:

button.setOnClickListener(this);
...
@Override
public void onClick(View v) {
    switch(v.getId()) {
        case R.id.YOURBUTTONID:
            adLoaded();
        break;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM