Busca

Mark Vasconcelos Creative Solutions

Teaching & Learning

Categoria

techs

Simpliest way to implement android.os.Parcelable and Parcelable.Creator trought Json converter library / Maneira mais simples de implementar Parcelable no Android

Caros, segue solução mais simples possível que encontrei para implementar Parcelable no Android (Obs.: Post em inglês).

I recently found a simple solution to implement the android.os.Parcelable interface (and Creator) on Android trought the usage of Gson library API.

The solution is to write one string and read one string from the Parcels at writeToParcel/readFromParcel with the results from Gson.toJson and Gson.fromJson

The resulted code doesn’t requires methods reading every item from parcels, and the model class doesnt need constructors too.

A sample is implemented in the following model:

class User {
long id;
String login;
String pass;

/**
* @param dest
* Writes String Gson.toJson(this) into 'dest'
*/
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(new Gson().toJson(this));
}
public transient static final Parcelable.Creator<User> CREATOR = new Creator<User>() {
/**
* @param source
* @return read string from 'source' as Gson
*/
@Override public User createFromParcel(Parcel source) {
return new Gson().fromJson(source.readString(), User.class);
}

@Override public User[] newArray(int size) { return new User[size]; }};

@Override public int describeContents() { return 0; }
}

PS: Sorry the try of making the relevants part of code clearly by this formatation.

 

😉

[]’s

Café com Java 2012 – Janeiro

Dia 11/02/2012(Sabádo) haverá um Café com Java.

O que é Café com Java?

Organizado a algum tempo por mim e o Eduardo Bregaiada, era simplesmente um encontro para o pessoal fazer um networking.
Recentemente tomou um outro formato para atender mais pessoas, com mais temas. Esse evento contará com 4 palestras de 30 minutos, e será realizado no auditório da Caelum próximo da estação Vila Mariana do metrô.

Apresentações:

10h00 às 10h30 – Conhecendo melhor os Classloaders da JVMDas, com Adriano Almeida (Caelum).
10h30 às 11h00 – Desenvolvimento de aplicações baseadas em regras de negócio utilizando o JRules da IBM, com Arthur Junior.
11h00 às 11h20 – Lanche.
11h20 às 11h50 – Desenvolvimento ágil de software com Ruby on Rails, com Lucas Caton
11h50 às 12h20 – Scrum Passos e DesafiosDas, com Eduardo Bregaida
12h20 às xx:xx – Confraternização

Onde?

Auditorio Caelum – Rua Vergueiro, 3185 – Perto da estação Vila Mariana do metro.

Quem pode ir?

Todos! É uma confraternização, um networking, nada formal, também não é algo focado apenas em Java, se você programa em outra linguagem vá também.

Importante: dada a procura, a Caelum criou um formulario de inscrição para garantir que caberá os interessados (apenas para as palestras, o bar é livre).

Fotos de outros Café com Java: Flickr

Não esqueçam!

Hora: 10:00 – 12:20 na Caelum, após: confraternização (provavelmente no batidão) até a hora que todo mundo for embora
Local: Auditorio Caelum – Rua Vergueiro, 3185 – metrô Vila Mariana – mapa.
Local Batidão (HappyHour): Rua Domingos de Morais, 1527 – Vila Mariana – mapa
Twitter HashTag: #CafeComJava
Site da Caelum: http://http://www.caelum.com.br/

PS: Para quem quiser palestrar nos próximos Cafés com Java, cadastre sua apresentação: https://docs.google.com/spreadsheet/viewform?formk…SzZBNEJZQ2VpTHdqWnZQanAyMWc6MQ

Design Android – Dicas oficiais

O Ice Cream Sandwich (Android 4.0) fez vários avanços para tornar o visual do Android algo consistente e coerente.

Os apps do Google agora têm design e comportamento semelhante, e os desenvolvedores de apps deveriam fazer o mesmo.

Felizmente, o Google ensina como fazer isto através de dicas de design, veja no site oficial Android Design.

Noticia via Gizmodo

2011 in review

The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.

Here’s an excerpt:

The concert hall at the Syndey Opera House holds 2,700 people. This blog was viewed about 29,000 times in 2011. If it were a concert at Sydney Opera House, it would take about 11 sold-out performances for that many people to see it.

Click here to see the complete report.

#CaféComJava – Android Presentation

Finalmente fiz upload dos slides que usei na minha apresentação no Café com Java de agosto na Caelum.

Fiz o upload no SlideShare e pode ser acessado através desse link.

Titulo: Android Overview
Conteudo: Uma visão geral da plataforma Android junto com codigos simples de exemplo.

Towel – Release 1.2.2

Hoje está sendo liberado um release do projeto Towel com uma pequena alteração enviado por Paulo Henrique.

A unica diferença é que agora é possivel mudar o texto do botão que aparece no Popup do CalendarView.

Para isso, basta usar o método setTodayString do CalendarView.

Ex:

CalendarView view = new CalendarView();
view.setTodayString("Hoje");

Para baixar a nova versão, basta entrar na pagina Towel Project do blog e seguir o link para o github.

Android – Toast – code snippet

Toasts são uma maneira simples de exibir uma mensagem curta ao usuario.

Para utilizar é muito simples, basta utilizar o método Toast.makeText para criar um Toast e mandar exibir.

O método makeText recebe três parametros:

  • Context context – O contexto, pode ser uma Activity ou algum Context que voce pegue de algum lugar (getApplicationContext() e etc)
  • CharSequence text – O texto a ser exibido
  • int duration – A duração que o Toast será exibido, por padrão existe os valores Toast.LENGHT_LONG e Toast.LENGHT_SHORT

Um pequeno código de exemplo:

Toast toast = Toast.makeText(context, "Texto para o usuario", Toast.LENGTH_LONG);
toast.show();

E o resultado disso é algo como o seguinte:

CalendarView

Esse artigo é sobre uma classe do projeto Towel, para utiliza-la, baixe a biblioteca na pagina Towel Project desse blog.

Esse componente foi feito em 1999 pelo meu professor de Java enquanto ele fazia estagio na area, por esse motivo eu desculpo ele por ter usado null-layout, mas refatorei ele para ser mais generico e independente de LayoutManagers.

O CalendarView é um componente que exibe um JTextField e um JButton juntos.
O JTextField serve para digitar dadas no formato ‘dd/MM/yyyy’ e o JButton abre uma JWindow que permite escolher a data em um calendario.

Para utiliza-lo é bem simples:

import java.awt.event.*;
import javax.swing.*;

import com.towel.swing.calendar.CalendarView;

public class CalendarViewTest {
	public CalendarViewTest() {
		JFrame frame = new JFrame("CalendarView");
		JPanel content = new JPanel();
		final CalendarView view = new CalendarView();
		JButton button = new JButton("X");
		content.add(view);
		content.add(button);
		button.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println(view.getSelectedDate());
			}
		});

		frame.setContentPane(content);
		frame.pack();
		frame.setLocationRelativeTo(null);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}

	public static void main(String[] args) {
		new CalendarViewTest();
	}
}

Esse codigo exibe a seguinte janela:

E quando pressionado o botao “..” a JWindow aparece com o DatePicker para escolher uma data.

Escolhendo alguma data o valor é exibido no campo de texto.

Para obter o valor que o usuario digitou (em uma ação por exemplo), temos dois métodos:

  • getText() que retorna o texto do TextField
  • getSelectedDate() que retorna um objeto Calendar com a data selecionada pelo usuario.
  • E no caso do código de exemplo, ao pressionar ‘X’ é exibido o toString do objeto Calendar que for escolhido.

    Como sempre, ainda é possivel melhorar esse componente, e essa é a lista do que já pode ser feito:

  • Um Layout melhor para o JWindow.
  • Internacionalizar os textos (nome do mês, inicial do dia, botão “hoje”)
  • Poder digitar datas no formato MM/dd/yyyy
  • Towel – Release 1.2

    Hoje dia 25/05 está sendo liberado o novo release do projeto Towel.

    As novidades são:

    • FieldResolver consegue obter/setar os valores dos atributos através da hierarquia do objeto;
    • Não é obrigatório declarar as anotações @Resolvable em todos os atributos, nesses casos o DefaultFormatter vai ser utilizado e o FieldHandler será o FieldAcessHandler padrão;
    • Um novo componente enviado pelo meu professor de Java foi incluido no pacote com.towel.swing sob o nome de CalendarView, que é um DatePicker para Swing; (Artigo em breve)

    Para baixar a nova versão, basta entrar na pagina Towel Project do blog e seguir o link para o github.

    Mais uma coisa está acontecendo hoje:

    Dia 25/05 é o Towel Day, em homenagem a Douglas Adams.
    Esse release foi planejado. 😉

    Abraço a todos, e feliz dia da toalha!

    Blog no WordPress.com.

    Acima ↑