Formato de fechas en Android


Como en todos los lenguajes de programación siempre nos vamos a encontrar con lo mismo, el formato de fecha para poder adecuarlo a nuestras necesidades, a continuación os pongo una función para poder formatear un String de fecha con un formato a otro String con otro formato de salida:

 

//Convierte fechas de wordpress que vienen en String al formato dd/MM/yyyy
private static String FormatDatetime(String inputText)
{
String nameFunction = «FormatDatetime»;
try
{
//Formatos de Fecha que quiero:
DateFormat _inputFormat = new SimpleDateFormat(«yyyy-MM-dd HH:mm:ss»);
DateFormat _outputFormat = new SimpleDateFormat(«dd/MM/yyyy kk:mm»);

//Convertimos:
_inputFormat.setTimeZone(TimeZone.getTimeZone(«UTC»));
Date parsed = _inputFormat.parse(inputText);
return _outputFormat.format(parsed);

}
catch(Exception ex)
{
Log.w(nameFunction,»#ERROR», ex);
return «»;
}
}

Problema scroll en Mapview dentro de un ScrollView


Programando en Android, me he encontrado que si tenemos un MapView dentro de un ScrollView el scroll que prevalece es el del componente padre ScrollView, para poder activar el scroll en el MapView, os aporto la siguiente solución:

Crear nueva clase MapViewScrollView:

package com.android.auxiliar;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;

import com.google.android.maps.MapView;

public class MapViewScrollView extends MapView {

public MapViewScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}

@Override
public boolean onTouchEvent(MotionEvent ev) {
int action = ev.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
// Disallow ScrollView to intercept touch events.
this.getParent().requestDisallowInterceptTouchEvent(true);
break;

case MotionEvent.ACTION_UP:
// Allow ScrollView to intercept touch events.
this.getParent().requestDisallowInterceptTouchEvent(false);
break;
}

// Handle MapView’s touch events.
super.onTouchEvent(ev);
return true;
}

}

 

Después en el layout donde tengamos, sustituímos el componente MapView de google por el nuestro:

<!– Mapa com.google.android.maps.MapView–>
<com.android.auxiliar.MapViewScrollView
android:id=»@+id/mapa»
android:layout_width=»fill_parent»
android:layout_height=»fill_parent»
android:clickable=»true»
android:apiKey=»vuestraKEY»/>

 

Por último desde la Activity solo tenemos que llamar al componente de la siguiente manera:

MapViewScrollView _mapa = = (MapViewScrollView)findViewById(R.id.mapa);

 

Con esto conseguimos que cuando estamos interactuando con el MapView desactive del componente padre ScrollView los desplazamientos en vertical, cuando salimos del MapView podemos comprobar que sí funcionan de nuevo.

 

Encoding UTF-8 Netbeans


Para los que tenéis problemas con la codificación de caracteres con netbeans:
  1. Ir a la ruta donde se encuentre instalado el NetBeans:
    C:\Archivos de programa\NetBeans x.x\etc
  2. Editar el archivo netbeans.conf agregando  «-J-Dfile.encoding=UTF-8» en la línea de opciones por default del NetBeans (netbeans_default_options). Igual que están el resto de opciones.
  3. Volver a cargar el Netbeans

Enviar Coordenadas manualmente terminal Android


Una vez instalado el plugin para netbeans no tenemos las opciones que teníamos en eclipse para enviar coordenadas, lo podemos hacer manualmente:

Nos vamos a Inicio – ejecutar y escribimos Telnet, nos debería aparecer la consola de windows con el Telnet, ahora debemos escribir open localhost 5554 (este número viene en el emulador de android arriba de todo, normalmente suele ser este), y después escribimos los comandos para enviar nuevas coordenadas.

Ejemplo: geo fix 43.654  -8.43

(Importante escribirlo así con puntos y usando separador un espacio en blanco entre las coordenadas).

Instalación plugin android en netbeans


Si tenemos instalado Netbeans (con el jdk instalado, requisito indispensable para este tutorial, podéis descargarlo en download jdk) podemos descargar el plugin para Android, para ello nos dirigimos a la opción de menú de Tools -> Plugins -> y en la ventana que nos aparece seleccionamos la pestaña Settings, presionaremos el botón Add y nos aparecerá la siguiente ventana:

Una vez en ella debemos cubrir con los siguientes datos:

Name: NBAndroid

URL: http://deadlock.netbeans.org/hudson/job/nbandroid/lastStableBuild/artifact/build/updates/updates.xml

En la pestaña de Available Plugins ahora deberían aparecernos unos nuevos plugins que son: Android y Android Test Runner for NetBeans 7.0+, marcarlos y presionar el botón Install

Una vez se inicia el proceso de Instalación veremos:

Nos aparecerá un aviso de los componentes que no están firmados y bajo nuestra propia responsabilidad seguimos adelante…

Ahora ya podemos crear un nuevo proyecto de android, seguramente nos pida la ruta del SDK de Android (que previamente debemos tener instalado), si nos lo pide nos irá a la siguiente ventana donde solo seleccionamos la ruta en C: de donde lo hayamos instalado con anterioridad al tutorial.

Ahora ya podremos seleccionar la versión de Android que queremos que lleve nuestro proyecto de Android:

Con esto ya deberíamos empezar a trabajar en Netbeans con Android 🙂

He intentado que el tutorial solo abarque la parte de instalación del plugin, a partir de aquí ya os comentaré en un post futuro si prefiero Eclipse o Netbeans. De primeras ya hay cosas que automatizaba eclipse que Netbeans no hace, definitivamente me quedo con Eclipse, tienes previsualizaciones de los layout, un autocompletar, te hace sugerencias de los paquetes donde está cada cosa, etc