2016-12-05 28 views
0

我創建了一個像這樣的方法,它包含更多的方法。但是,我不知道是否需要頂級方法 - appNextCallAd()。我希望澄清一下在點擊一個按鈕時調用adLoaded()方法的最佳做法。我應該把它變成一個班級嗎?如果是,如何?如果我必須從多個活動中撥打adLoaded(),最佳方法是什麼?謝謝。如何在一個方法內部調用一個方法,點擊一個按鈕? (Android Java)

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?! 
     } 
    }; 
+0

你不能只是在你的按鈕的onClick方法中調用interstitial_Ad.setOnAdOpenedCallback(new OnAdOpened(){...)嗎? –

回答

0

當調用方法來設置回調,只是用「這個」,實現的接口。

你的類將是這樣的:

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

    ... 

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

,那麼你將能夠調用adLoaded從的onClick方法。我建議這樣做:

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