2012-01-22 12 views
5

Obecnie projektuję natywną aplikację na Androida. Planuję korzystać z widoku WWW jQuery Mobile jako interfejsu i wykonuję wszystkie obliczenia za pomocą backendu Java. (nadal decydując się na użycie klawisza lub karty graficznej)Android - prosty formularz wprowadzania danych przez użytkownika WWW do back-end java z jQuery Mobile

Mam pewne problemy z implementacją strony, która pozwala użytkownikowi wypełnić formularz i przekazać zmienną do części Android java.

Badając cały ranek, nauczyłem się interakcji między javascript/html i java z addJavascriptInterface(). Ale jedyną rzeczą, która może mi odpowiadać na moje pytanie, jest JSON. Wydaje się to nieco skomplikowane. Czy jest sposób, w jaki mogę przekazać zmienną jako parametr funkcji java?

(dowiedziałem się, że jeśli nie używam widok internetową, mogę po prostu użyć getText() lub getSelectedItem() z domyślnego interfejsu użytkownika, aby robić to, co chcę)

przepraszam nie ma kodu dostępna, ponieważ jest to wciąż na etapie projektowania, a ja jestem trochę nowy dla Androida SDK.

Dzięki

+0

Jakie dane należy przekazać do interfejsu javascript? Ile pól w formularzu i jakiego typu? Możesz po prostu utworzyć rozdzielany ciąg i wywołać funkcję w interfejsie. – Squonk

+0

wygląda na to, że będzie zawierać około 5 pól ustawień użytkownika. Czy oznacza to, że po kliknięciu przycisku "submit" wystarczy utworzyć funkcję javascript, zapisać te wartości wejściowe w zmiennych i wywołać funkcję java? – AbSoLution8

+0

Zobacz moją przykładową odpowiedź. Dopiero zacząłem grać z tymi rzeczami, ale myślę, że możesz przekazać wiele parametrów do funkcji 'JavaScriptInterface'. – Squonk

Odpowiedz

8

OK, oto przykład interakcji z interfejsem javascript ...

Ustawienie interfejsu JavaScript w swojej działalności ...

JavascriptInterface javasriptInterface = new JavascriptInterface(this); 
webview.addJavascriptInterface(javasriptInterface, "Android"); 

Wewnętrzna klasa JavascriptInterface w swojej Aktywność Androida ...

public class JavascriptInterface { 
    Context mContext; 

    JavascriptInterface(Context c) { 
     mContext = c; 
    } 

    public boolean doSomething(String name, String address) { 
     ... 
     return true; 
    } 
} 

EDYTOWANIE: Formularz będzie miał różne pola wprowadzania. Przykład ...

<form name="myForm" ...> 
    <input type=text name=personName> 
    <input type=text name=personAddress> 
    <input type="button" value="Do it" onClick="callDoSomething()" /> 
</form> 

<script type="text/javascript"> 
    function callDoSomething() { 
     var theName = document.myForm.personName.value; 
     var theAddress = document.myForm.personAddress.value; 
     var result = Android.doSomething(theName, theAddress); 
    } 
</script> 
+1

dzięki. Rzeczywiście widziałem to gdzie indziej i rozumiem tę część. Czego nie rozumiem, w jaki sposób powinienem przekazać wartości wejściowe do Android.showTast? (w jaki sposób uzyskać wartości wejściowe formularza na "wiadomość"? (dzięki – AbSoLution8

+0

Zobacz moją edycję na końcu mojej odpowiedzi, a także, że dodałem funkcję 'doSomething (...)' do klasy 'JavascriptInterface' Jak już powiedziałem, jestem całkiem nowy w robieniu tego, ale mam nadzieję, że da ci to początek. – Squonk

Powiązane problemy