Android Question BBLabel error Object should first be initialized (B4XView). Anyone can help, Please

teguh.saint

New Member
My Code:
For i = 0 To ayatList.Size - 1
            Dim ayatMap As Map
            ayatMap = ayatList.Get(i)
            
            ' Ambil informasi yang Anda butuhkan dari setiap ayat
            Dim nomorAyat As Int
            Dim teksArab As String
            Dim teksLatin As String
            Dim teksIndo As String
        
        
        
            
            nomorAyat = ayatMap.Get("nomorAyat")
            teksArab = ayatMap.Get("teksArab")
            Log(teksArab & " ( "& nomorAyat& " )")
            
            teksLatin = ayatMap.Get("teksLatin")
            teksIndo = ayatMap.Get("teksIndonesia")
            
            Dim lbl As BBLabel
            lbl.Initialize(Activity,"lbl")
            
            lbl.Text = teksArab
        
            lbl.mBase.SetLayoutAnimated(0, 0,0, BBCodeView1.mBase.Width - 10dip, -2)
            BBCodeView1.Views.Put("lbl", lbl)
        
            
            BBCodeView1.Text=BBCodeView1.Text&CRLF&CRLF&"[View=lbl Vertical=0/]"
            
            
        Next

Error:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create (first time) **
** Activity (main) Resume **
*** Receiver (httputils2service) Receive (first time) ***
{"code":200,"message":"Data retrieved successfully","data":{"nomor":2,"nama":"البقرة","namaLatin":"Al-Baqarah","jumlahAyat":286,"tempatTurun":"Madinah","arti":"Sapi","deskripsi":"Surat <i>Al Baqarah</i> yang 286 ayat itu turun di Madinah yang sebahagian besar diturunkan pada permulaan tahun Hijrah, kecuali ayat 281 diturunkan di Mina pada Hajji wadaa' (hajji Nabi Muhammad s.a.w. yang terakhir). Seluruh ayat dari surat Al Baqarah termasuk golongan Madaniyyah, merupakan surat yang terpanjang di antara surat-surat Al Quran yang di dalamnya terdapat pula ayat yang terpancang (ayat 282). Surat ini dinamai <i>Al Baqarah</i> karena di dalamnya disebutkan kisah penyembelihan sapi betina yang diperintahkan Allah kepada Bani Israil (ayat 67 sampai dengan 74), dimana dijelaskan watak orang Yahudi pada umumnya. Dinamai <i>Fusthaatul-Quran</i> (puncak Al Quran) karena memuat beberapa hukum yang tidak disebutkan dalam surat yang lain. Dinamai juga surat  <i>alif-laam-miim</i> karena surat ini dimulai dengan Alif-laam-miim.","audioFull":{"01":"https://equran.nos.wjv-1.neo.id/audio-full/Abdullah-Al-Juhany/002.mp3","02":"https://equran.nos.wjv-1.neo.id/audio-full/Abdul-Muhsin-Al-Qasim/002.mp3","03":"https://equran.nos.wjv-1.neo.id/audio-full/Abdurrahman-as-Sudais/002.mp3","04":"https://equran.nos.wjv-1.neo.id/audio-full/Ibrahim-Al-Dossari/002.mp3","05":"https://equran.nos.wjv-1.neo.id/audio-full/Misyari-Rasyid-Al-Afasi/002.mp3"},"ayat":[{"nomorAyat":1,"teksArab":"الۤمّۤ ۚ","teksLatin":"alif lām mīm.","teksIndonesia":"Alif Lam Mim.","audio":{"01":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdullah-Al-Juhany/002001.mp3","02":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdul-Muhsin-Al-Qasim/002001.mp3","03":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdurrahman-as-Sudais/002001.mp3","04":"https://equran.nos.wjv-1.neo.id/audio-partial/Ibrahim-Al-Dossari/002001.mp3","05":"https://equran.nos.wjv-1.neo.id/audio-partial/Misyari-Rasyid-Al-Afasi/002001.mp3"}},{"nomorAyat":2,"teksArab":"ذٰلِكَ الْكِتٰبُ لَا رَيْبَ ۛ فِيْهِ ۛ هُدًى لِّلْمُتَّقِيْنَۙ","teksLatin":"Żālikal-kitābu lā raiba fīh(i), hudal lil-muttaqīn(a).","teksIndonesia":"Kitab (Al-Qur'an) ini tidak ada keraguan padanya; petunjuk bagi mereka yang bertakwa,","audio":{"01":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdullah-Al-Juhany/002002.mp3","02":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdul-Muhsin-Al-Qasim/002002.mp3","03":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdurrahman-as-Sudais/002002.mp3","04":"https://equran.nos.wjv-1.neo.id/audio-partial/Ibrahim-Al-Dossari/002002.mp3","05":"https://equran.nos.wjv-1.neo.id/audio-partial/Misyari-Rasyid-Al-Afasi/002002.mp3"}},{"nomorAyat":3,"teksArab":"الَّذِيْنَ يُؤْمِنُوْنَ بِالْغَيْبِ وَيُقِيْمُوْنَ الصَّلٰوةَ وَمِمَّا رَزَقْنٰهُمْ يُنْفِقُوْنَ ۙ","teksLatin":"al-lażīna yu'minūna bil-gaibi wa yuqīmūnaṣ-ṣalāta wa mimmā razaqnāhum yunfiqūn(a).","teksIndonesia":"(yaitu) mereka yang beriman kepada yang gaib, melaksanakan salat, dan menginfakkan sebagian rezeki yang Kami berikan kepada mereka,","audio":{"01":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdullah-Al-Juhany/002003.mp3","02":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdul-Muhsin-Al-Qasim/002003.mp3","03":"https://equran.nos.wjv-1.neo.id/audio-partial/Abdurrahman-as-Sudais/002003.mp3","04":"https://equran.nos.wjv-1.neo.id/audio-partial/Ibrahim-Al-Dossari/002003.mp3","05":"https://equran.nos.wjv-1.neo.id/audio-partial/Misyari-Rasyid-Al-Afasi/002003.mp3"}},{"nomorAyat":4,"teksArab":"وَالَّذِيْنَ يُؤْمِنُوْنَ بِمَآ اُنْزِلَ اِلَيْكَ وَمَآ اُنْزِلَ مِنْ قَبْلِكَ ۚ وَبِالْاٰخِرَةِ هُمْ يُوْقِنُوْنَۗ","teksLatin":"wal-lażīna yu'minūna bimā unzila ilaika wa mā unzila min qablik(a), wabil-ākhirati hum yūqinūn(a).","teksIndonesia":"dan m
Message longer than Log limit (4000). Message was truncated.
الۤمّۤ ۚ ( 1 )
Error occurred on line: 86 (BBLabel)
java.lang.RuntimeException: Object should first be initialized (B4XView).
    at anywheresoftware.b4a.AbsObjectWrapper.getObject(AbsObjectWrapper.java:67)
    at anywheresoftware.b4a.objects.B4XViewWrapper.getViewObject(B4XViewWrapper.java:104)
    at anywheresoftware.b4a.objects.B4XViewWrapper.asPanelWrapper(B4XViewWrapper.java:107)
    at anywheresoftware.b4a.objects.B4XViewWrapper.getNumberOfViews(B4XViewWrapper.java:353)
    at b4a.example.bblabel._parseanddraw(bblabel.java:213)
    at b4a.example.bblabel._settext(bblabel.java:102)
    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:157)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:201)
    at anywheresoftware.b4a.shell.DebugResumableSub$RemoteResumableSub.resume(DebugResumableSub.java:22)
    at anywheresoftware.b4a.BA.checkAndRunWaitForEvent(BA.java:275)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:150)
    at anywheresoftware.b4a.BA$2.run(BA.java:395)
    at android.os.Handler.handleCallback(Handler.java:883)
    at android.os.Handler.dispatchMessage(Handler.java:100)
    at android.os.Looper.loop(Looper.java:226)
    at android.app.ActivityThread.main(ActivityThread.java:7592)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
** Activity (main) Pause, UserClosed = true **
 

teguh.saint

New Member
Ca
I don't see how your code can work. You are replacing the label each time. Why do you need to put a BBLabel inside BBCodeView? Try to solve it without the label.

Custom views instances are not views directly. You need to put lbl.mBase instead of lbl.
Can you give me example how to Inistialize BBLabel if we dont create in the designer ?
 
Upvote 0
Top