Vamos olhar o número 1.
Antes de eu falar a resposta,
vou copiar esse código e
colar no Android Studio.
Quero mostrar o tipo de erro
que podemos ter como resposta.
Agora, quando você estava fazendo o teste
você não precisava usar o Android Studio,
você poderia ter resolvido só
olhando o código aqui e
então escrito na resposta.
Então, usando ou não o
Android Studio, tudo bem.
Para fazer o código funcionar,
eu criei um novo projeto e
então modifiquei o arquivo de
layout ActivityMain,
para que tivesse várias visualizações
com esses ID's que vamos referenciar.
Não tenho certeza como
esse layout pareceria, mas
eu só quero colocar as visualizações aqui
com os nomes ID correspondentes.
Desse jeito, meu código
vai funcionar aqui.
Então, número um, eu colei o código aqui,
e eu percebi um erro.
Adroid Studios diz que não pode
determinar o método setText.
Se você lembrar o último vídeo,
Eu mencionei que setText
é um método TextView.
Isso significa que você só pode invocar
esse método em objetos TextView.
Nesse caso, vamos chamar
chamar de nameTextView.
Um nameTextView
deve ser um objeto view,
e precisamos mudar para
um objeto TextView.
Então recebemos um erro dizendo
que não há compatibilidade.
Um textview, um objeto tipo
TextView é requerido, mas
ao invés disso ele acha
um objeto typeview.
Isso porque findviewbyID
retorna uma visualização, e
esse lado esquerdo requer um TextView.
Isso significa que precisamos
modificar isso
para receber a visualização por
findViewById
Então podemos armazenar tudo isso
com o nome nameTextView
na variável do lado esquerdo.
Então o erro some, e podemos
colocar o texto "Laura" nesse TextView.
O erro está na linha 1,
então eu escrevi o código certo aqui.
A explicação geral é que precisamos
lançar essa view em um TextView
e então armazenar dentro
da variável nameTextView.
Desse jeito, nós podemos invocar
nameTextView.setText
que é um método TextView,
na próxima linha de código.
Vamos para o número dois.
Vou copiar o código e colar
no Android Studio.
Esse é o código que eu copiei.
A primeira linha
parece correta, sem erros.
Mas a segunda linha
está sublinhada de vermelho e
e isso quer dizer que existe
um erro de digitação.
Quer dizer que um string
é necessário mas o código é int.
Para entender melhor,
temos que olhar o método getMaxLines
nas instruções do TextView.
Nas instruções, vou procurar por
método getMaxLines.
E aqui está.
Não existem parâmetros de entrada,
e o valor de retorno
desse método é inteiro.
Então era por isso que o Android Studio
estava reclamando, por que esse método,
se está dando como resposta um inteiro
mas estamos tentando armazenar
como uma variável string.
Como resultado, eu preciso mudar esse tipo
de dado da variável para uma inteira.
Então o erro some.
Então, o valor de retorno
desse método é inteiro.
Logo, podemos armazenar
nessas variáveis maxLines.
Ainda tem um aviso.
Dizendo que a variável
maxLines nunca foi usada.
Mas isso é só um código snippet.
Eu presumi que se isso
fosse um aplicativo comum,
iríamos usar
essa variável depois.
Então o erro está na segunda linha
e esse é o código atualizado.
A explicação é que o valor de retorno
desse método deveria
ser inteiro.
Vamos para o exercício três.
Esse é o código do exercício três.
Eu copiei e colei o código
no Android Studio.
Aparece um erro com uma mensagem
dizendo que os tipos são incompatíveis.
Requer um ImageView,
mas é um view.
Esse erro é similar ao que acabamos
de ver com o TextView.
Esse método tem como
resposta uma view.
E do lado esquerdo, nós estamos tentando
armazenar dentro de um ImageView.
Então precisamos mudar esse objeto view
para um ImageView
Isso é valido por que o view no
ícone ID na verdade é um ImageView,
então tudo bem lançar isso
num imageview
Agora do lado direito,
equivale a um ImageView,
podemos armazenar dentro
da variável do lado esquerdo.
Essa variável tem um dado tipo ImageView
então agora tudo combina
e o erro some.
No próximo lado,
podemos invocar um método ImageView,
SetImageResource,
nesse objeto IconImageView object.
Ainda tem um erro, dizendo
que não aceita símbolos.
Isso é porque eu não adicionei uma imagem
no nosso aplicativo com a logo do nome.
Se eu adicionar, o erro some,
então nosso código está correto.
Esse é o código correto, onde eu armazenei
esse view em um ImageView.
Por último temos o número 4.
Eu colei o código no Android Studio
e surpreendentemente não tem erros.
O código está tentando achar
uma view com o id title,
e isso deve retornar um view como resposta
e fica armazenado na variável TextView.
TextView tem um tipo de dado View,
então isso combina com o lado direito,
então essa linha de código está correta.
Na próxima linha, vamos pegar
esse objeto, que é um ViewAnd,
e vamos invocar um método
setVIsibility
O método usa um parâmetro de entrada
chamado View.GONE.
Eu posso checar as instruções
para verificar o que significa isso.
Nas instruções da classe view,
eu posso procurar pelo
método setVisibility.
Eu vejo que setVisibility
é um método dentro da classe view.
É preciso de uma entrada inteira que
represente o estado de visibilidade.
Os valores possíveis da visibilidade são:
VISIBLE, INVISIBLE, e GONE
Como setVisibility é um método
dentro da classe view,
é uma entrada válida.
Não tem necessidade de lançar
em um TextView,
por que o método que estamos invocando
é um método da classe view.
Agora, se estamos tentando
usar o método TextView,
então vamos precisar
lançar em um TextView.
Então para esse exercício,
a resposta deve ser: sem erros,
porque setVisibility é um método view
e não tem problema deixa como objeto view.
Essas questões foram difíceis.
Tudo bem se você não acertou.
No próximo teste, você vai
poder praticar mais.