German Inline Java erste geh versuche

Siam

Active Member
Licensed User
Hallo,
ich versuche mir die Inline Java geschichte etwas nahe zu bringen, scheitere aber schon beim aufruf einer classe.

B4X:
Dim s As Float =  NativeMe.RunMethod("AquaLib.one",Array As Object(kh,co))
#If JAVA
import java.lang.Math;
import java.lang.Float;
public class AquaLib {
    public Float one(Float kh,Float co) {
    float x = (float) Math.round((7.90+Math.log(kh/(2.8*co))/Math.log(10))*100)/100;
    return x;
    }
    public Float two(Float kh,Float co) {
    float x = (float) Math.round((7.90+Math.log(kh/(2.8*co))/Math.log(10))*100)/100;
    return x;
    }   
    public Float three(Float kh,Float co) {
    float x = (float) Math.round((7.90+Math.log(kh/(2.8*co))/Math.log(10))*100)/100;
    return x;
    }   
    public Float four(Float kh,Float co) {
    float x = (float) Math.round((7.90+Math.log(kh/(2.8*co))/Math.log(10))*100)/100;
    return x;
    }   
}
#end if
ic nehme mal an das mein Problem hier;
B4X:
NativeMe.RunMethod("AquaLib.one",Array As Object(kh,co))
zu suchen ist ich komm jedoch irgendwie nicht weiter :(

lg

andy
 

corwin42

Expert
Licensed User
Soweit ich weiss kannst Du keine neuen Klassen einbinden.
Du kannst aber die Methoden der Klasse (in diesem Fall) separieren und diese dann statisch aufrufen.
Lokale Klassen dürfte auch gehen.

So wie oben der Aufruf der Funktionen gemacht wird, müssten sie aber als static deklariert sein.

Ich bin mir auch nicht ganz sicher, ob man die imports mitten im Java Code machen kann.
 

corwin42

Expert
Licensed User
Sind sie aber doch nicht. Sie stehen am Anfang; und Erel schrieb das man auch Imports verwenden kann!?
Im Inline Code stehen sie am Anfang. Was B4A daraus macht ist noch eine ganz andere Frage. Da evtl. mitten im Java Code. Aber wenn Erel gesagt hat, dass es geht, ist ja in Ordnung. So viel habe ich mit Inline Java bis jetzt noch nicht gemacht.
 
Top