Glosario de Términos
JSON, acrónimo de JavaScript Object Notation, Es Un ligero Formato Parrafo el Intercambio de Datos.
JSON Es Un Subconjunto de la notación literal de Objetos de JavaScript Que No Requiere el BSG de XML.
Más información: http://es.wikipedia.org/wiki/JSON
Androide
Android es El Pecado Sistema Operativo ADEMÁS De Una Plataforma de Software Basada en el núcleo de Linux.
Diseñado En Un Principio Parrafo Dispositivos Móviles, Android permite Controlar Dispositivos Por Medio de Bibliotecas desarrolladlas o Adaptados Porción Google MEDIANTE EL Lenguaje de programación Java.
Android es Una Plataforma de Código abierto.
Más información: http://www.configurarequipos.com/doc1107.html
Eclipse IDE Parr Java EE Desarrolladores
APLICACIONES implementar Entorno de Desarrollo Parr Que se ejecutan ACONDICIONADO BAÑO Android Dispositivos.
Información Más y Descarga: http://www.eclipse.org/downloads/
Android SDK
Android SDK es el kit de Desarrollo necesarias Parrafo Programar e implementar Todo tipo de applications Parr Android, el Sistema Operativo Parr Teléfonos Móviles Propuesto porcion Google.
Kit Necesarias Este Paquete o de Desarrollo INCLUYE Las APIs y Herramientas Parr APLICACIONES desarrollar utilizando JAVA COMO Lenguaje de Programación.
Más información y Descarga:
http://developer.android.com/sdk/index.html
Requisitos de Software
Eclipse IDE Parr Java EE Desarrolladores (ADT Eclipse)
Android SDK
Android Login - Capa Vista
Crear, Pecado Actividad Android, ONU de la estafa Parr visual Diseño Que el usuario Pueda validarse en el Servidor J2EE
Preparamos la ONU visual en XML Y enlazamos estafa Actividad Un diseño.
< LinearLayout xmlns: android = "http://schemas.android.com/apk/res/android"
xmlns: Herramientas = "http://schemas.android.com/tools"
android: id = "@ + id/LinearLayout1"
android: layout_width = "match_parent"
android: layout_height = "match_parent"
android: Orientación = "vertical"
android: padding = "10DP"
Herramientas: Contexto = ". Threads_Handler" >
< ImageView
android: id = "@ + id/imageView1"
android: layout_width = "200DP"
android: layout_height = "100DP"
android: layout_gravity = "center_horizontal"
android: src = "@ estirable / logo_movil" />
< TextView
android: id = "@ + id/textView1"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: layout_gravity = "right"
android: text = "@ string / usuario"
android: textAppearance = "android:? attr / textAppearanceLarge" />
< EditarTexto
android: id = "@ + id / edtUser"
android: layout_width = "match_parent"
android: layout_height = "wrap_content"
android: ems = "10"
android: pista = "Indica tu usuario ...."
android: inputType = "textEmailAddress" >
< requestFocus />
</ EditarTexto >
< TextView
android: id = "@ + id/textView2"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: layout_gravity = "right"
android: text = "@ string / pass"
android: textAppearance = "android:? attr / textAppearanceLarge" />
< EditarTexto
android: id = "@ + id / edtPass"
android: layout_width = "match_parent"
android: layout_height = "wrap_content"
android: ems = "10"
android: pista = "Indica tu contraseña ...."
android: inputType = "textPassword" />
< Button
android: id = "@ + id / btnEnviar"
android: layout_width = "wrap_content"
android: layout_height = "wrap_content"
android: layout_gravity = "right"
android: text = "@ string / Enviar" />
</ LinearLayout >
com.seas.threads_handler Paquete;
android.app.Activity Importación;
Importación android.os.Bundle;
android.view.View Importación;
Importación android.view.View.OnClickListener;
Importación android.widget.Button;
Importación android.widget.EditText;
com.seas.threads_handler.services.ServiceLogin Importación;
com.svalero.mvc_sanvalero.beans.Usuario Importación;
public class Threads_Handler extiende Actividad {
/ * Singleton * /
private static Threads_Handler threads_Handler;
Estática Threads_Handler getInstance () {
volver threads_Handler;
}
/ * Aleta Singleton * /
Privado edtUser EditarTexto;
Privado edtPass EditarTexto;
Button Privada btnEnviar;
@ Override
protected void onCreate (Bundle savedInstanceState) {
super.onCreate (savedInstanceState);
setContentView (R.layout.activity_threads__handler);
/ * Singleton * /
Threads_Handler.threads_Handler = this;
/ * Aleta Singleton * /
edtUser = (EditarTexto) findViewById (R.id.edtUser);
edtPass = (EditarTexto) findViewById (R.id.edtPass);
btnEnviar = (Button) findViewById (R.id.btnEnviar);
btnEnviar.setOnClickListener (nueva OnClickListener () {
@ Override
public void onClick (Ver arg0) {
String user = edtUser.getText () toString ().;
Pase String = edtPass.getText () toString ().;
Usuario usuario = new Usuario (user, pass);
ServiceLogin.accionLogin (usuario);
}
});
}
}
Servicios del paquete: Herramientas necesarias Parr realizar Una PETICIÓN Un des Servidor J2EE.Clase Servicio Inicio de Sesión
om.seas.threads_handler.services Paquete;
java.util.ArrayList Importación;
Importación org.json.JSONArray;
org.json.JSONObject Importación;
Importación android.app.ProgressDialog;
Importación android.os.Handler;
Importación android.widget.Toast;
com.seas.threads_handler.Threads_Handler Importación;
com.svalero.mvc_sanvalero.beans.Usuario Importación;
Importación com.svalero.mvc_sanvalero.datos.SanValeroData;
com.svalero.mvc_sanvalero.tools.Post Importación;
Importación com.svalero.mvc_sanvalero.tools.UtilsConfig;
public class ServiceLogin {
manejador Manejador Privado static final = new Handler ();
messageUser Privado static String;
Datos JsonArray estáticas Privadas;
public static void accionLogin (usuario final, de Usuario) {
Toast.makeText (Threads_Handler.getInstance (). GetBaseContext (),
. "Cargando datos ...", Toast.LENGTH_LONG) show ();
Tema threadLogin = new Thread () {
public void run () {
try {
/ / Lista de Lista de Lista de Lista de Lista de Lista de Lista de Lista de parámetros de Lista De: ACCIÓN = LOGIN USUARIO Y = Y LUIS PASS = LUIS
Parametros ArrayList <String> = new ArrayList <String> ();
parametros.add ("Acción");
parametros.add (UtilsConfig.WEBSERVICE_LOGIN);
parametros.add (UtilsConfig.WEBSERVICE_LOGIN_PARAMS_USER);
parametros.add (usuario.getUser ());
parametros.add (UtilsConfig.WEBSERVICE_LOGIN_PARAMS_PASS);
parametros.add (usuario.getPass ());
/ / Llamada a J2EE Web Servidor
try {
Datos = Post.getServerData (parametros, UtilsConfig.URL);
} Catch (Exception e) {
messageUser = "Error al Conectar Con El Servidor.";
}
} Catch (Exception e) {
messageUser = "Error al Conectar Con El Servidor. ";
}
manejador.post (Proceso);
}
};
threadLogin.start ();
}
Proceso Ejecutable Privado static final = new Ejecutable () {
public void run () {
try {
if (= null && Datos! datos.length ()> 0) {
JSONObject json_data = datos.getJSONObject (0);
int numRegistrados = json_data.getInt ("idUsuario");
si (numRegistrados> 0) {
Usuario usuario = new Usuario (); usuario.setIdUsuario (json_data.getInt ("idUsuario"));
usuario.setUser (json_data.getString ("usuario"));
usuario.setPass (json_data.getString ("paso"));
SanValeroData.setUsuario (usuario);
. Toast.makeText (. Threads_Handler.getInstance () getBaseContext () ". Usuario correcto", Toast.LENGTH_SHORT) show ();
}
} Else {
. Toast.makeText (. Threads_Handler.getInstance () getBaseContext () ". Incorrecto Usuario", Toast.LENGTH_SHORT) show ();
Toast.makeText (Threads_Handler.getInstance () getBaseContext (), messageUser, Toast.LENGTH_SHORT.) Show ().;
}
} Catch (Exception e) {}
}
};
}
Paquete com.svalero.mvc_sanvalero.beans;
Público Clase de Usuario {
Privada int idUsuario ;
Privada Cadena usuario ;
Privada Cadena PASE ;
Público Usuario (usuario de cuerdas, PASE String) {
este . usuario = usuario;
este . Pasar = Pasar;
}
Público Usuario () {
}
Pública int getIdUsuario () {
volver idUsuario ;
}
Público void setIdUsuario ( int idUsuario) {
este . idUsuario = idUsuario;
}
Público Cadena getUser () {
Regresar de usuario ;
}
Público void setUser (usuario String) {
este . usuario = usuario;
}
Público Cadena getpass () {
Regresar PASE ;
}
Público void SETPASS (PASE String) {
este . Pasar = Pasar;
}
}
Datos del Embalaje (estáticos)Paquete com.svalero.mvc_sanvalero.datos;
Importación com.svalero.mvc_sanvalero.beans.Usuario;
Público de Clase SanValeroData {
Privada Estática Usuario usuario ;
Pública Estática Usuario getUsuario () {
Devolver usuario ;
}
Público Estático void setUsuario (Usuario usuario) {
SanValeroData. usuario = usuario;
}
}
Utilidades de Embalaje (Correoscom.svalero.mvc_sanvalero.tools Paquete;
java.io.BufferedReader Importación;
java.io.InputStream Importación;
java.io.InputStreamReader Importación;
java.util.ArrayList Importación;
org.apache.http.HttpEntity Importación;
org.apache.http.HttpResponse Importación;
org.apache.http.client.HttpClient Importación;
org.apache.http.client.entity.UrlEncodedFormEntity Importación;
Importación org.apache.http.client.methods.HttpPost;
org.apache.http.impl.client.DefaultHttpClient Importación;
org.apache.http.message.BasicNameValuePair Importación;
Importación org.json.JSONArray;
Importación android.util.Log;
public class {Mensaje
InputStream Estática Privada es = null;
Respuesta private static string = "";
void (parametros ArrayList <String>, URL String) Privadas estáticos SINCRONIZADOS conectaPost {
ArrayList <BasicNameValuePair> nameValuePairs;
try {
HttpClient httpclient = new DefaultHttpClient ();
HttpPost HttpPost = new HttpPost (URL);
nameValuePairs = new ArrayList <BasicNameValuePair> ();
if (parametros! = null) {
for (int i = 0; i <parametros.size (); i + = 2) {
nameValuePairs.add (nueva BasicNameValuePair ((String) parametros.get (i), (String) parametros.get (i + 1)));
}
httppost.setEntity (UrlEncodedFormEntity nueva (nameValuePairs));
}
HttpResponse Respuesta = httpclient.execute (HttpPost);
HttpEntity Entidad response.getEntity = ();
es = entity.getContent ();
} Catch (Exception e) {
Log.e ("log_tag", "Error en La Conexión http" + e.toString ());
De de de de Finalmente} {
}
}
static void sincronizado Privada getRespuestaPost () {
try {
Lector BufferedReader = new BufferedReader (InputStreamReader nuevo (es Decir, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder ();
Línea String = null;
while ((line = reader.readLine ())! = null) {
sb.append (line + "\ n");
}
is.close ();
Respuesta = sb.toString ();
Log.e ("log_tag", "Cadena JSON" + Respuesta);
} Catch (Exception e) {
Log.e ("log_tag", "Error al convertir el Resultado" + e.toString ());
}
}
private static sincronizado JSONArray getJsonArray () {
JSONArray jArray = null;
try {
jArray = new JSONArray (Respuesta);
} Catch (Exception e) {
}
volver jArray;
}
sincronizado Públicas estáticas JSONArray getServerData (parametros ArrayList <String>, String url) {
conectaPost (parametros, URL);
if (es! = null) {
getRespuestaPost ();
}
if (= null && Respuesta! respuesta.trim ()! = "") {
volver getJsonArray ();
} Else {
Devolver nula;
}
}
}
Utilidades de Embalaje (UtilsConfig)Paquete com.svalero.mvc_sanvalero.tools;
Público de Clase UtilsConfig {
Pública Estática Cadena URL = "http://172.17.22.240:8080/AndroidGroupon/Controller" ;
Pública Estática Cadena WEBSERVICE_LOGIN = "ingresar" ;
Pública Estática Cadena WEBSERVICE_LOGIN_PARAMS_USER = "USUARIO" ;
Pública Estática Cadena WEBSERVICE_LOGIN_PARAMS_PASS = "pass" ;
}
Manifest (Permisos de Internet)<? Xml version = "1.0" encoding = "UTF-8">
<Xmlns manifiestos: android = "http://schemas.android.com/apk/res/android"
Paquete = "com.seas.threads_handler"
android: versionCode = "1"
android: VersionName = "1.0">
<Usos-sdk
android: minSdkVersion = "8"
android: targetSdkVersion = "16" />
<uses-permission android:name="android.permission.INTERNET"/>
<Aplicación
android: allowBackup = "true"
android: icon = "@ estirable / ic_launcher"
android: label = "@ string / nombre_apl"
android: theme = "@ style / AppTheme">
<Actividad
android: name = "com.seas.threads_handler.Threads_Handler"
android: label = "@ string / nombre_apl">
<intent-filter>
<accion android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</ Intención de filter>
</ Actividad>
</ Application>
</ Manifest>
EjecucionComprobar la URL en La Que no hay Escuchando nuestra Aplicación Web está en el Servidor GlassFish.
<
Sustituir Por La IP_LOCAL, No Se permiten Conexiones "localhost". Ejecutar el Servidor Web en Netbeans y el Android de Proyecto.
URL Público static String = "http://172.17.22.240:8080/AndroidGroupon/Controller";
Descargar Proyecto en Dropbox: Pincha