Bug? Intent.PutExtra does not add object to Extras

cimperia

Active Member
Licensed User
Longtime User
OS: Windows7 with .Net > 4.5
B4A: 5.20

There seems to be a bug with Intent.PutExtra. When I try to add my user defined Type (Category) to the intent Extras, it does not get added, and this failure happens silently.

After adding my 3 Extras to the intent, I call Log(intent_.ExtrasToString) and the Category object is missing. When the called activity checks for the existence of the parameter, of course it is not there.

Am I missing something?

B4X:
Sub Globals
   Type Category(Text As String, Notes As String, IsNew As Boolean)
   Dim btAddCategory As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
   btAddCategory.Initialize("btAddCategory")
   Activity.AddView(btAddCategory, 50dip, 50dip, 100dip, 45dip)    
End Sub


Sub btAddCategory_Click
   Dim intent_ As Intent  
   Dim edit_category As Category

   'Populate Category Item
   edit_category.Initialize
   edit_category.Text = "Wine"
   edit_category.Notes = "Original Notes"
   edit_category.IsNew = False

   'Set up Intent    
   intent_.Initialize("", "")
   intent_.PutExtra("FromActivity", "CategoryManager")    
   intent_.PutExtra("cat", edit_category)
   intent_.PutExtra("Sub_To_Call", "InsertCategory")    

   'Check list of Extras, and cat is missing
   Log(intent_.ExtrasToString)

   intent_.SetComponent(GetPackageName & "/.categorymanager")

   StartActivity(intent_)
   End Sub

   Sub GetPackageName As String
   Private r As Reflector
   Return r.GetStaticField("anywheresoftware.b4a.BA", "packageName")
End Sub

CategoryManager Activity:

B4X:
Sub Activity_Create(FirstTime As Boolean)
  Dim sub_name As String
   Dim cat As Category
   cat.Initialize
  
  Dim StartingIntent As Intent
  StartingIntent = Activity.GetStartingIntent
  
   sub_name = StartingIntent.GetExtra("Sub_To_Call")

   Log(StartingIntent.HasExtra("cat")) 'Always False
  
   'cat is always null
   cat = StartingIntent.GetExtra("cat")
   Log(cat = Null) 'Always true

   'CallSub2("", sub_name, cat)  
End Sub
 

cimperia

Active Member
Licensed User
Longtime User
Thanks.

It doesn't say anything about that in the B4A documentation though.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…