Convertendo varchar para time without time zone no PostgreSQL

Dica rápida pra quem está precisando converter um valor em varchar para time without time zone no PostgreSQL.

Usando a função to_timestamp(valor, formato), o valor retornado é um timestamp with time zone.

Porém, basta adicionar ao final da chamada da função o tipo do retorno desejado:

to_timestamp('23:59:59', 'HH24:MI:SS')::time without time zone

Tive um problema com PHP, usando PDO com PostgreSQL e a função overlaps(). Precisava passar um valor time para a função e funcionou dessa maneira.

Espero ajudar alguém.

Restringindo caracteres digitados no EditText do Android

Desenvolvendo em Android, temos alguns casos em que precisamos restringir os caracteres que são permitidos em campos como o EditText.

Um exemplo, é um campo que aceite valores como 1,80 e 1.80. No caso, se a restrição fosse somente números com . (ponto) como separador decimal, bastaria definir o android:inputType como numberDecimal. Porém, número com , (vírgula) como separador não iriam funcionar.

Para tarefas como essa, o atributo android:digits está aí para salvar a pátria. Basta definir nele quais dígitos serão permitidos naquele EditText e o Android cuida do resto.

Exemplo:

Permitir somente números, tanto com . como , como separadores decimais:

<EditText android:digits="1234567890.," android:layout_width="wrap_content" android:layout_height="wrap_content" />

Fácil, não?

Essa solução também é util para ser usada em conjunto com o android:inputType="numberDecimal". Nesse caso, é apresentado o teclado numérico, permitindo que vírgulas também sejam incluídas.

Exemplo:

<EditText android:digits="1234567890.," android:inputType="numberDecimal" android:layout_width="wrap_content" android:layout_height="wrap_content" />

 

Outros exemplos

Números hexadecimais:

<EditText android:digits="abcdef1234567890" android:layout_width="wrap_content" android:layout_height="wrap_content" />

Somente números pares:

<EditText android:digits=02468" android:inputType="number" android:layout_width="wrap_content" android:layout_height="wrap_content" />

 

Abraço!

Debugando seu aplicativo Android no tablet Coby Kyros Mid8024

Hoje precisei instalar uma app Android que desenvolvi no tablet de um cliente. Conectei o bicho no USB do computador e nada de reconhecer. Olhei no Gerenciador de Dispositivos do Windows 7 (infelizmente preciso trabalhar no maldito) e vi que existia um dispositivo não reconhecido, o S5P OTG-USB .

Após alguma procura, localizei o driver necessário, esse aqui. Agora, basta extrair os arquivos para alguma pasta,  ir novamente no Gerenciador de Dispositivos, clicar com o botão direito no S5P OTG-USB, clicar em Atualizar driver (ou instalar driver, se necessário) e localizar a pasta dos drivers.

Pronto. Para testar se funcionou, execute comando: adb devices e veja se seu dispositivo foi reconhecido. No meu caso, ele foi reconhecido como MID_Serials device.

Agora basta debugar seu aplicativo.

No no meu caso, eu fazia o download da app, começava a instalação, mas aparecia a mensagem: "O aplicativo não foi instalado". Fiz o processo para debugar o aplicativo e descobri que o tablet não tinha a lib do Google Maps. O erro era esse: INSTALL_FAILED_MISSING_SHARED_LIBRARY.

O processo de debug direto no dispositivo me fez perceber o problema na hora. Se não tivesse debugado, estaria até agora tentando entender o erro. Fica a dica.

Download do driver

Link alternativo

Grande abraço!

Convertendo de UTF-8 para ISO-8859-1 em Java: A solução definitiva

Recentemente enfrentei problemas em um aplicativo Android que desenvolvi, o qual se comunica com o banco de dados de um dos sistemas da empresa, codificado em ISO-8859-1 (Firebird) através de um web service.

Os dados eram gravados de forma errada, muitas vezes truncavam e as vezes apareciam caracteres estranhos.

Depois de algumas tentativas, cheguei até a seguinte solução:






public static String convertUTF8toISO(String str) {
	String ret = null;
	try {
		ret = new String(str.getBytes("ISO-8859-1"), "UTF-8");
	}
	catch (java.io.UnsupportedEncodingException e) {
		return null;
	}
	return ret;
}

Adicione o método acima à sua classe de utilidades e acabe com os seus problemas.

Abraço.

 

Acessando o localhost a partir do emulador do Android

Um requisito muito comum de um aplicativo desenvolvido para a plataforma Android é que o mesmo acesse um web service para troca de informações. No momento do desenvolvimento do aplicativo, geralmente o web service fica na mesma máquina em que se encontra o emulador.

Como faço pra acessar o localhost da máquina através do emulador? Usando "localhost" na string de conexão? Não funciona.

Uso o IP da minha máquina para conectar? Pode até funcionar, mas e se você estiver desconectado?

Neste caso, basta usar o IP mágico, 10.0.2.2. Através deste endereço, o emulador Android saberá que deve acessar o localhost da sua máquina, independente da configuração da sua rede e mesmo que você estiver desconectado.

Tente você mesmo. Com seu servidor web iniciado, acesse o endereço através do browser do emulador Android.

Saudações!

Google