Tudo bom pessoal? mais uma vez venho pedir uma mãozinha com o android, é o seguinte, estou desenvolvendo um aplicativo simples só pra estudos usando a webview, um layout todo em html css e jquery como todos sabem, a dúvida é a seguinte, como faço para passar o valor do input text que tenho no html para o metodo java insertDB que criei na minha aplicação via javascript(jquery), ainda não consegui achar um exemplo simples para sanar minha dúvida.
o que tenho até agora é isso segue código:
android
package Exercicio.exercicio1;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.widget.Toast;
public class MainActivity extends Activity
{
WebView web;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
web = (WebView)findViewById(R.id.webView);
WebSettings settings = web.getSettings();
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
settings.setSupportMultipleWindows(true);
settings.setSupportZoom(false);
settings.setPluginsEnabled(true);
web.setWebChromeClient(new WebChromeClient());
web.setVerticalScrollBarEnabled(true);
web.setHorizontalScrollBarEnabled(false);
web.loadUrl("file:///android_asset/www/index.html");
web.addJavascriptInterface(new JavaScriptInterface(this),"MainActivity");
web.addJavascriptInterface(new Js(), "Android");
web.addJavascriptInterface(new BancoJS(), "Banco");
BancoJS banco = new BancoJS();
banco.CriaDB();
}
public class BancoJS{
String NomeDB = "aula";
SQLiteDatabase DB = null;
Cursor cursor;
public void CriaDB(){
try{
DB = openOrCreateDatabase(NomeDB, MODE_WORLD_READABLE, null);
String SQL = "CREATE TABLE IF NOT EXISTS tabPessoa (_id INTEGER PRIMARY KEY AUTOINCREMENT, nome_pessoa TEXT NOT NULL, telefone_pessoa TEXT NOT NULL)";
DB.execSQL(SQL);
MensagemAlerta("Banco de dados", "Banco Criado Com Sucesso!");
}catch(Exception erro){
MensagemAlerta("Erro Banco de dados", "Não foi possível cria o banco!" + erro);
}
finally{
DB.close();
}
}
public void insertDB(String nome, String telefone){
try{
DB = openOrCreateDatabase(NomeDB, MODE_WORLD_READABLE, null);
String SQL = "INSERT INTO tabCadastroPessoa(nome_pessoa, telefone_pessoa) VALUES ('"+nome.toString()+","+telefone.toString()+"')";
DB.execSQL(SQL);
MensagemAlerta("Banco de dados", "Registro Gravado Com Sucesso!");
}catch(Exception erro){
MensagemAlerta("Erro Banco de dados", "Não foi possível gravar o registro!" + erro);
}
finally{
DB.close();
}
}
public void MensagemAlerta(String TituloAlerta, String MensagemAlerta){
AlertDialog.Builder Mensagem = new AlertDialog.Builder(MainActivity.this);
Mensagem.setTitle(TituloAlerta);
Mensagem.setMessage(MensagemAlerta);
Mensagem.setNeutralButton("OK", null);
Mensagem.show();
}
}
public class Js{
public String getSomeString(){
return "Holla mundo!";
}
}
public class JavaScriptInterface{
Context mContext;
JavaScriptInterface(Context c){
mContext = c;
}
public void showToast(String toast){
Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
}
}
}
código html[code]
aplicativo <script type="text/javascript" src="js/jquery-1.9.1.min.js" ></script>
<script type="text/javascript" src="js/general.js"></script>
<script type="text/javascript" src="js/jquery.mobile-1.3.1.js" ></script>
<link rel="stylesheet" href="css/jquery.mobile.structure-1.3.1.min.css" type="text/css" />
<link rel="stylesheet" href="css/style.css" type="text/css">
<style type="text/css">
</style>
</head>
<script type="text/javascript">
</script>
<body>
<div data-role="page" id="page" data-theme="e">
<div data-role="header">
<h1>Cabeçalho</h1>
</div>
<div data-role="content">
<label>seu nome:</label>
<input type="text" name="nome" id="nome"/><br/>
<label>seu telefone:</label>
<input type="text" name="telefone" id="telefone"/>
<input type="button" data-theme="b" id="btn" value="aperte"/>
<input type="button" data-theme="b" id="btn_2" value="outra coisa" onClick="alert(Android.getSomeString());"/>
</div>
<div id="clear"></div>
<div data-role="footer">
<footer>
Rodapé
</footer>
</div>
</div>
</body>
[/code]
e código js
[code]
$(document).ready(function(){
$("#btn").click(function(){
var nome = $("#nome").val();
var telefone = $("#telefone").val();
alert("olá, "+nome+" "+telefone);
insertBanco( nome, telefone);
});
$("#btn_2").click(function(){
alert(teste());
});
});
function insertBanco(){
Banco.insertDB();
}
function mensagemBanco(){
return Banco.MensagemAlerta();
}
function teste() {
return Android.getSomeString();
}[/code]
Se puderem dar umas dicas e alguns exemplos simples e práticos ficarei muito agradecido e postarei o código aqui para outras pessoas que também tenham essa dúvida em relação ao android.