Java Question Why Event not Exists in my librarie

chjk

Member
Licensed User
Longtime User
B4X:
import net.youmi.android.normal.banner.BannerViewListener;
import android.view.View;

import anywheresoftware.b4a.*;
import anywheresoftware.b4a.BA.ActivityObject;
import anywheresoftware.b4a.BA.Author;
import anywheresoftware.b4a.BA.DependsOn;
import anywheresoftware.b4a.BA.Events;
import anywheresoftware.b4a.BA.Permissions;
import anywheresoftware.b4a.BA.ShortName;
import anywheresoftware.b4a.BA.Version;
import anywheresoftware.b4a.objects.ViewWrapper;

@ShortName("myYoumiAD")
@Version(1.0F)
@Author("Chjk")
@Events(values={"onSwitchBanner","onRequestSuccess","onRequestFailed"})
@Permissions(values = {"android.permission.INTERNET","android.permission.READ_PHONE_STATE","android.permission.ACCESS_NETWORK_STATE","android.permission.ACCESS_WIFI_STATE","android.permission.GET_TASKS","android.permission.WRITE_EXTERNAL_STORAGE","android.permission.SYSTEM_ALERT_WINDOW"})
@DependsOn(values="youmiad")
@ActivityObject

public class youmiAD extends ViewWrapper<View> {
    private View mAdView;
       private BA mBa;
       private String eN;
       /**
        *
        * @param EventName
        * @param AppID
        * @param AppKey
        * @param isTestModel
        * @param isEnableLog
        */
       public void Initialize(BA ba,String EventName,String AppID,String AppKey,boolean isTestMode,boolean isEnableLog) {
         AdManager.getInstance(ba.activity).init(AppID, AppKey, isTestMode, isEnableLog);
         mBa=ba;
         eN = EventName;
        
         mAdView = BannerManager.getInstance(ba.context).getBannerView(ba.context,new BannerViewListener() {
            
            @Override
            public void onRequestSuccess() {
                // TODO Auto-generated method stub
                //mBa.raiseEvent(null, eN+"_onRequestSuccess", new Object[0]);
                mBa.Log(mBa.getClassNameWithoutPackage());
                if (mBa.subExists(eN+"_onRequestSuccess")){
                //Log.i("B4A",mBa.toString());
                mBa.raiseEvent2(mAdView, false, eN+"_onRequestSuccess", true, "");
                } else {
                    mBa.Log("not onRequestSuccess");
                }
               
            }
           
        });
         setObject(mAdView);
         super.Initialize(mBa, EventName);
        return;    
         }
}

I have in Main file defined the corresponding onRequestSuccess event, but when it is called, hint it does not exist. Hope to get your help, Thanks!
 

chjk

Member
Licensed User
Longtime User
Moved to the correct forum.

the event strings should be lowercase:
B4X:
eN = EventName.toLowerCase(BA.cul);
...
mBa.raiseEvent2(mAdView, false, eN + "_onrequestsuccess", true, "");
Thanks Erel! It's work fine!
 
Top