Just use a B4A integer (32bit) and then mask it with 0xFFFF
Also, if you want to add the bytes as unsigned values, you must check their value, since in B4A they are signed.
(I mean, 0x80 as a B4A byte is -128 instead of 128)
Something similar to
Sub calcChecksum16( myData() as Byte ) as Int
Dim myCheck as int 'use a 32-bit integer
myCheck =0 'or initial value
for k=0 to myData.length-1
If myData(k)>0 then
myCheck=myCheck+myData(k)
Else
myCheck=myCheck-myData(k)
End if
next
myCheck=Bit.And(myCheck,0xFFFF)
return ( myCheck )
End Sub
--EDIT--
Oops! I have just seen that "Short" also exists as a data type in B4A. But anyway the above should work