sexta-feira, 30 de janeiro de 2015

Dominando o Android: Atualização 2

Olá povo,

Em atenção as pessoas que compraram meu livro, estou reportando os erros que o pessoal está encontrando. Sendo assim, segue abaixo mais algumas atualizações sobre o livro. Quem quiser acompanhar e reportar erratas pode participar do grupo de discussão sobre o livro.

Capítulo 1

Página 43. A pasta values-v11-mcc724-mnc31 informada não funcionaria pois teria que ser respeitada a ordem de avaliação dos recursos. O nome correto seria values-mcc724-mnc31-v11.
Obrigado Douglas Drumond!

Página 46. A propriedade densityDpi da classe Configuration só está disponível na API Level 17 (Android 4.2). E as propriedades screenHeightDp e screenWidthDp na API Level 13 (Android 3.2). Uma alternativa para obter esses valores é utilizar a classe DisplayMetrics.
Obrigado Tatiani Lima!

Capítulo 4

Página 113: No lugar de setEditorActionListener(OnEditorActionListener), usar setOnEditorActionListener(OnEditorActionListener).
Valeu Jorge Felipe (por essa e outras).

Página 134. Na seção "Cabeçalho e Rodapé", no lugar de setListAdapter(Adapter) lê-se listView.setAdapter(Adapter).

Página 136: Na seção "EmptyView", quando fui fazer esse exemplo, ele era inicialmente com uma ListActivity.
public class MainActivity extends ListActivity {
  ...
  public void onCreate(Bundle savedInstanceState){
    setContentView(R.layout.activity_main);
    listView = getListView();
    ...
  }
  ...
}
Com isso, o exemplo funciona corretamente, porque internamente a classe ListActivity define a propriedade emptyView da ListView. Entretanto, no Lollipop, por padrão, a  ListActivity não exibe a ActionBar (barra de título da parte superior), então resolvi herdar de ActionBarActivity. E com isso, esqueci de adicionar a seguinte linha:
listView.setEmptyView(findViewById(android.R.id.empty));

Essa correção já está disponível no GitHub.
Obrigado Vitor Albuquerque!

Capítulo 5

Página 155: No segundo parágrafo, no lugar de android:text, seria android:textColor.

Página 159: Remover propriedade android:background dos botões, uma vez que ela foi definida no arquivos values/styles.xml.

Capítulo 6

Página 195: No único parágrafo, no lugar de equipe, seria hotel.

Geral

Em vários exemplos estou utilizando o valor fill_parent ao invés do match_parent. Entretanto o segundo é o recomendado desde a API Level 8 (Android 2.2). Mas se você observar, o valor das constantes internamente é o mesmo. Então na prática, não faz diferença nenhuma, ele só foi renomeado. Mas, por precaução, utilize match_parent.

--

Bem pessoal! Por enquanto é isso. Desculpem o transtorno, mas é que não houve revisão técnica pois encareceria o livro. Essa incubência ficou para vocês e eu agradeço bastante essa colaboração.

À medida que forem achando alguma coisa, por gentileza reportem no grupo. Vai ajudar a mim e a outros leitores.

4br4ç05,
nglauber

9 comentários:

vrcca disse...

A gente faz a revisão! :D

vrcca disse...

Mais uma correção:

Na página 164, na parte que diz:

"Crie o arquivo meu.html dentro da pasta app/src/assets do projeto"

O correto é:
"Crie o arquivo meu.html dentro da pasta app/src/main/assets do projeto"

vrcca disse...

Página 182:

Na parte que diz:

"Primeiro obtivemos as propriedades personalizadas (...) passando como parâmetro o R.styleable.JogoDaVelha, que definimos no strings.xml."

Sei que é meio óbvio onde foi colocado, mas o correto é o arquivo styles.xml

Nelson Glauber disse...

Oi Vitor,

Obrigado pelas correções!
Vou juntar mais algumas correções e fazer outro post :)

4br4ç05,
nglauber

Unknown disse...

Postei no grupo uma duvida. Obrigado.

Nelson Glauber disse...

Oi Frederico,

Respondi seu comentário lá.

4br4ç05,
nglauber

vrcca disse...

Tranquilo Nelson! Vou fazer uma compilação dos erros que eu for achando e coloco lá no grupo.

Abs.

TiCariri disse...

Bom dia!

Nelson Glauber em qual livraria física do recife em encontro o seu livro???

Nelson Glauber disse...

Olá TiCariri,

Tem na Livraria Cultura do Paço Alfândega.

4br4ç05,
nglauber