#Event: PageChanged(Position As Int)
If xui.SubExists(mCallBack, mEventName & "_PageChanged",1) Then
CallSub2(mCallBack, mEventName & "_PageChanged",CurrentIndex)
End If
#if b4i
Private Sub ImgCont_ScrollChanged (OffsetX As Int, OffsetY As Int)
Dim centerIndex As Int = 0
If OffsetX > 0 Then
centerIndex = OffsetX/ImgCont.width
End If
If OffsetX = centerIndex*ImgCont.width Then
#else if b4a
Private Sub ImgCont_PageChanged (Position As Int)
Dim centerIndex As Int = Position
#end if
If CurrentIndex <> centerIndex Then
PrevIndex = CurrentIndex
CurrentIndex = centerIndex
ShowCount
UpdateDots
If xui.SubExists(mCallBack, mEventName & "_PageChanged",1) Then
CallSub2(mCallBack, mEventName & "_PageChanged",CurrentIndex)
End If
End If
#if b4i
End If
#end if
ShowImage
End Sub
*** Service (firebasemessaging) Create ***
** Service (firebasemessaging) Start **
5
** Activity (main) Pause, UserClosed = false **
** Activity (zoom) Create, isFirst = true **
Error occurred on line: 98 (xImageSliderIG)
java.lang.RuntimeException: Object should first be initialized (JavaObject).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:50)
at anywheresoftware.b4j.object.JavaObject.getCurrentClass(JavaObject.java:258)
at anywheresoftware.b4j.object.JavaObject.RunMethod(JavaObject.java:118)
at com.beisat.android.ximagesliderig._designercreateview(ximagesliderig.java:409)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
at anywheresoftware.b4a.objects.CustomViewWrapper.AfterDesignerScript(CustomViewWrapper.java:61)
at anywheresoftware.b4a.keywords.LayoutBuilder.loadLayout(LayoutBuilder.java:162)
at anywheresoftware.b4a.objects.PanelWrapper.LoadLayout(PanelWrapper.java:134)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at com.beisat.android.zoom.afterFirstLayout(zoom.java:104)
at com.beisat.android.zoom.access$000(zoom.java:17)
at com.beisat.android.zoom$WaitForLayout.run(zoom.java:82)
at android.os.Handler.handleCallback(Handler.java:907)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:216)
at android.app.ActivityThread.main(ActivityThread.java:7625)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:524)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:987)
** Activity (zoom) Resume **
I had the same error, but read this:i am getting this error
activityHasActionBar As Boolean
Set it to false if there is no Action bar (b4a) / Navigation bar (B4I). Default is True. Only needed if the pinch zoom is enabled.
thanks for fast replayI had the same error, but read this:
set this property to "false" and try it now.
Sub Activity_Create(FirstTime As Boolean)
'Do not forget to load the layout file created with the visual designer. For example:
xImageSliderIG1.activityHasActionBar = False
Try thisbut copying the same layouts ,code to my project case this error !
still the same broTry this
Could you please post the whole code?thanks for fast replay
i tried but still the same
B4X:Sub Activity_Create(FirstTime As Boolean) 'Do not forget to load the layout file created with the visual designer. For example: xImageSliderIG1.activityHasActionBar = False
Could you please the whole code?
#Region Activity Attributes
#FullScreen: False
#IncludeTitle: False
#End Region
Sub Process_Globals
End Sub
Sub Globals
Type SliderContainer(slider As xImageSliderIG, items As List)
Private CustomListView1 As CustomListView
Private xImageSliderIG1 As xImageSliderIG
Private sliders As List
End Sub
Sub Activity_Create(FirstTime As Boolean)
xImageSliderIG1.activityHasActionBar = False
Activity.LoadLayout("Layout2")
sliders.Initialize
Dim p As Panel
p.Initialize("")
p.SetLayout(0,0,100%x,300dip)
p.LoadLayout("layout1")
Dim sc As SliderContainer
sc.Initialize
sc.slider = xImageSliderIG1
sc.items.Initialize
sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/dresseee-327x351.jpg"))
sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/wintrr-591x628.jpg"))
sc.slider.SetImages(sc.items)
sc.slider.SetZoomPanel(Activity)
sliders.Add(sc)
CustomListView1.Add(p,"")
CustomListView1.GetPanel(0).Color = Colors.White
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub xImageSliderIG1_SingleTap(CurrentIndex As Int, Data As Object)
Dim str As String = Data
ToastMessageShow("Single Tap:" & CurrentIndex &", "& str,False)
End Sub
Sub xImageSliderIG1_DoubleTap(CurrentIndex As Int, Data As Object)
Dim str As String = Data
ToastMessageShow("Double Tap:" & CurrentIndex &", "& str,False)
End Sub
B4X:#Region Activity Attributes #FullScreen: False #IncludeTitle: False #End Region Sub Process_Globals End Sub Sub Globals Type SliderContainer(slider As xImageSliderIG, items As List) Private CustomListView1 As CustomListView Private xImageSliderIG1 As xImageSliderIG Private sliders As List End Sub Sub Activity_Create(FirstTime As Boolean) xImageSliderIG1.activityHasActionBar = False Activity.LoadLayout("Layout2") sliders.Initialize Dim p As Panel p.Initialize("") p.SetLayout(0,0,100%x,300dip) p.LoadLayout("layout1") Dim sc As SliderContainer sc.Initialize sc.slider = xImageSliderIG1 sc.items.Initialize sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/dresseee-327x351.jpg")) sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/wintrr-591x628.jpg")) sc.slider.SetImages(sc.items) sc.slider.SetZoomPanel(Activity) sliders.Add(sc) CustomListView1.Add(p,"") CustomListView1.GetPanel(0).Color = Colors.White End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub xImageSliderIG1_SingleTap(CurrentIndex As Int, Data As Object) Dim str As String = Data ToastMessageShow("Single Tap:" & CurrentIndex &", "& str,False) End Sub Sub xImageSliderIG1_DoubleTap(CurrentIndex As Int, Data As Object) Dim str As String = Data ToastMessageShow("Double Tap:" & CurrentIndex &", "& str,False) End Sub
Sub Activity_Create(FirstTime As Boolean)
'xImageSliderIG1.activityHasActionBar = False
...
Dim sc As SliderContainer
sc.Initialize
sc.slider = xImageSliderIG1
sc.items.Initialize
sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/dresseee-327x351.jpg"))
sc.items.Add(CreateMap("image":"https://doduae-image.s3.ap-south-1.amazonaws.com/cache/catalog/banner/2020/web/feb/003/wintrr-591x628.jpg"))
sc.slider.activityHasActionBar = False 'this should be here
sc.slider.SetImages(sc.items)
sc.slider.SetZoomPanel(Activity)
sliders.Add(sc)
CustomListView1.Add(p,"")
CustomListView1.GetPanel(0).Color = Colors.White
End Sub
good to knowsc.slider.activityHasActionBar = False 'this should be here
Yes. Its because he is using SliderContainer. So he needs to set that property of the slider which is inside that SliderContainer instance. I will recommend using the slider directly for single usage. For multiple sliders in a single page you need SliderContainer.good to know
ximagesliderig_imgcont_gd_ontouch (java line: 295)
java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.get(ArrayList.java:437)
at anywheresoftware.b4a.objects.collections.List.Get(List.java:117)
at com.stoltex.fasterinstasaver.ximagesliderig._imgcont_gd_ontouch(ximagesliderig.java:295)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
at anywheresoftware.b4a.BA.raiseEvent(BA.java:176)
at flm.b4a.gesturedetector.GestureDetectorForB4A$1.onTouch(GestureDetectorForB4A.java:99)
at android.view.View.dispatchTouchEvent(View.java:13495)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3079)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2756)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3085)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2770)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3085)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2770)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3085)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2770)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3085)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2770)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3085)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2770)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:472)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1878)
at android.app.Activity.dispatchTouchEvent(Activity.java:4006)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:430)
at android.view.View.dispatchPointerEvent(View.java:13758)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5837)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:5620)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5169)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5135)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5275)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5143)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5332)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5116)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5169)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5135)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5143)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5116)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7895)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7864)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7804)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:8020)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:189)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:336)
at android.os.Looper.loop(Looper.java:174)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Error occurred on line: 467 (xImageSliderIG)
java.lang.RuntimeException: Object should first be initialized (View).
at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:50)
at anywheresoftware.b4a.objects.B4XViewWrapper.GetView(B4XViewWrapper.java:299)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at anywheresoftware.b4a.debug.Debug.delegate(Debug.java:262)
at com.stoltex.randompic.ximagesliderig._showimage(ximagesliderig.java:987)
at com.stoltex.randompic.ximagesliderig._setimages(ximagesliderig.java:260)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
at java.lang.reflect.Method.invoke(Native Method)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144)
at com.stoltex.randompic.frm_main.afterFirstLayout(frm_main.java:104)
at com.stoltex.randompic.frm_main.access$000(frm_main.java:17)
at com.stoltex.randompic.frm_main$WaitForLayout.run(frm_main.java:82)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Yes I saw this while working on an update. Will post the update soon. The new update will fixed this error and it will also support video playback, dot indicator positioning and visibility, fill/fit/stretch scaling for image and also for video.If i disable "Fit Image" then the following error occurs:
B4X:Error occurred on line: 467 (xImageSliderIG) java.lang.RuntimeException: Object should first be initialized (View). at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:50) at anywheresoftware.b4a.objects.B4XViewWrapper.GetView(B4XViewWrapper.java:299) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732) at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348) at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144) at anywheresoftware.b4a.debug.Debug.delegate(Debug.java:262) at com.stoltex.randompic.ximagesliderig._showimage(ximagesliderig.java:987) at com.stoltex.randompic.ximagesliderig._setimages(ximagesliderig.java:260) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732) at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:351) at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255) at java.lang.reflect.Method.invoke(Native Method) at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:144) at com.stoltex.randompic.frm_main.afterFirstLayout(frm_main.java:104) at com.stoltex.randompic.frm_main.access$000(frm_main.java:17) at com.stoltex.randompic.frm_main$WaitForLayout.run(frm_main.java:82) at android.os.Handler.handleCallback(Handler.java:883) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loop(Looper.java:214) at android.app.ActivityThread.main(ActivityThread.java:7682) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)