WEBVTT
00:00:00.270 --> 00:00:01.540
Vamos olhar o número 1.
00:00:01.540 --> 00:00:04.470
Antes de eu falar a resposta,
vou copiar esse código e
00:00:04.470 --> 00:00:06.700
colar no Android Studio.
00:00:06.700 --> 00:00:09.060
Quero mostrar o tipo de erro
que podemos ter como resposta.
00:00:09.060 --> 00:00:12.090
Agora, quando você estava fazendo o teste
você não precisava usar o Android Studio,
00:00:12.090 --> 00:00:14.510
você poderia ter resolvido só
olhando o código aqui e
00:00:14.510 --> 00:00:16.280
então escrito na resposta.
00:00:16.280 --> 00:00:19.520
Então, usando ou não o
Android Studio, tudo bem.
00:00:19.520 --> 00:00:22.260
Para fazer o código funcionar,
eu criei um novo projeto e
00:00:22.260 --> 00:00:25.270
então modifiquei o arquivo de
layout ActivityMain,
00:00:25.270 --> 00:00:30.080
para que tivesse várias visualizações
com esses ID's que vamos referenciar.
00:00:30.080 --> 00:00:31.780
Não tenho certeza como
esse layout pareceria, mas
00:00:31.780 --> 00:00:36.060
eu só quero colocar as visualizações aqui
com os nomes ID correspondentes.
00:00:36.060 --> 00:00:38.210
Desse jeito, meu código
vai funcionar aqui.
00:00:38.210 --> 00:00:42.570
Então, número um, eu colei o código aqui,
e eu percebi um erro.
00:00:42.570 --> 00:00:46.270
Adroid Studios diz que não pode
determinar o método setText.
00:00:46.270 --> 00:00:47.780
Se você lembrar o último vídeo,
00:00:47.780 --> 00:00:51.510
Eu mencionei que setText
é um método TextView.
00:00:51.510 --> 00:00:55.100
Isso significa que você só pode invocar
esse método em objetos TextView.
00:00:55.100 --> 00:00:57.920
Nesse caso, vamos chamar
chamar de nameTextView.
00:00:57.920 --> 00:01:00.705
Um nameTextView
deve ser um objeto view,
00:01:00.705 --> 00:01:04.057
e precisamos mudar para
um objeto TextView.
00:01:05.990 --> 00:01:08.942
Então recebemos um erro dizendo
que não há compatibilidade.
00:01:08.942 --> 00:01:12.390
Um textview, um objeto tipo
TextView é requerido, mas
00:01:12.390 --> 00:01:15.700
ao invés disso ele acha
um objeto typeview.
00:01:15.700 --> 00:01:18.570
Isso porque findviewbyID
retorna uma visualização, e
00:01:18.570 --> 00:01:21.950
esse lado esquerdo requer um TextView.
00:01:21.950 --> 00:01:24.860
Isso significa que precisamos
modificar isso
00:01:24.860 --> 00:01:28.730
para receber a visualização por
findViewById
00:01:28.730 --> 00:01:30.800
Então podemos armazenar tudo isso
00:01:30.800 --> 00:01:35.090
com o nome nameTextView
na variável do lado esquerdo.
00:01:35.090 --> 00:01:40.760
Então o erro some, e podemos
colocar o texto "Laura" nesse TextView.
00:01:40.760 --> 00:01:44.510
O erro está na linha 1,
então eu escrevi o código certo aqui.
00:01:44.510 --> 00:01:49.540
A explicação geral é que precisamos
lançar essa view em um TextView
00:01:49.540 --> 00:01:53.050
e então armazenar dentro
da variável nameTextView.
00:01:53.050 --> 00:01:56.340
Desse jeito, nós podemos invocar
nameTextView.setText
00:01:56.340 --> 00:01:59.850
que é um método TextView,
na próxima linha de código.
00:01:59.850 --> 00:02:00.830
Vamos para o número dois.
00:02:00.830 --> 00:02:03.290
Vou copiar o código e colar
no Android Studio.
00:02:04.540 --> 00:02:06.590
Esse é o código que eu copiei.
00:02:06.590 --> 00:02:09.620
A primeira linha
parece correta, sem erros.
00:02:09.620 --> 00:02:11.550
Mas a segunda linha
está sublinhada de vermelho e
00:02:11.550 --> 00:02:14.420
e isso quer dizer que existe
um erro de digitação.
00:02:14.420 --> 00:02:17.990
Quer dizer que um string
é necessário mas o código é int.
00:02:17.990 --> 00:02:19.290
Para entender melhor,
00:02:19.290 --> 00:02:24.250
temos que olhar o método getMaxLines
nas instruções do TextView.
00:02:24.250 --> 00:02:26.580
Nas instruções, vou procurar por
00:02:26.580 --> 00:02:28.650
método getMaxLines.
00:02:28.650 --> 00:02:29.770
E aqui está.
00:02:29.770 --> 00:02:31.120
Não existem parâmetros de entrada,
00:02:31.120 --> 00:02:33.520
e o valor de retorno
desse método é inteiro.
00:02:34.758 --> 00:02:38.194
Então era por isso que o Android Studio
estava reclamando, por que esse método,
00:02:38.194 --> 00:02:39.911
se está dando como resposta um inteiro
00:02:39.911 --> 00:02:42.700
mas estamos tentando armazenar
como uma variável string.
00:02:42.700 --> 00:02:47.870
Como resultado, eu preciso mudar esse tipo
de dado da variável para uma inteira.
00:02:47.870 --> 00:02:49.470
Então o erro some.
00:02:49.470 --> 00:02:52.620
Então, o valor de retorno
desse método é inteiro.
00:02:52.620 --> 00:02:56.060
Logo, podemos armazenar
nessas variáveis maxLines.
00:02:56.060 --> 00:02:57.870
Ainda tem um aviso.
00:02:57.870 --> 00:03:00.870
Dizendo que a variável
maxLines nunca foi usada.
00:03:00.870 --> 00:03:02.260
Mas isso é só um código snippet.
00:03:02.260 --> 00:03:04.760
Eu presumi que se isso
fosse um aplicativo comum,
00:03:04.760 --> 00:03:06.740
iríamos usar
essa variável depois.
00:03:07.800 --> 00:03:11.380
Então o erro está na segunda linha
e esse é o código atualizado.
00:03:11.380 --> 00:03:14.340
A explicação é que o valor de retorno
desse método deveria
00:03:14.340 --> 00:03:15.480
ser inteiro.
00:03:15.480 --> 00:03:16.620
Vamos para o exercício três.
00:03:17.980 --> 00:03:19.830
Esse é o código do exercício três.
00:03:19.830 --> 00:03:22.960
Eu copiei e colei o código
no Android Studio.
00:03:22.960 --> 00:03:25.812
Aparece um erro com uma mensagem
dizendo que os tipos são incompatíveis.
00:03:25.812 --> 00:03:29.400
Requer um ImageView,
mas é um view.
00:03:29.400 --> 00:03:32.740
Esse erro é similar ao que acabamos
de ver com o TextView.
00:03:32.740 --> 00:03:34.960
Esse método tem como
resposta uma view.
00:03:34.960 --> 00:03:38.270
E do lado esquerdo, nós estamos tentando
armazenar dentro de um ImageView.
00:03:38.270 --> 00:03:42.370
Então precisamos mudar esse objeto view
para um ImageView
00:03:42.370 --> 00:03:47.330
Isso é valido por que o view no
ícone ID na verdade é um ImageView,
00:03:47.330 --> 00:03:49.630
então tudo bem lançar isso
num imageview
00:03:49.630 --> 00:03:52.560
Agora do lado direito,
equivale a um ImageView,
00:03:52.560 --> 00:03:55.700
podemos armazenar dentro
da variável do lado esquerdo.
00:03:55.700 --> 00:03:59.770
Essa variável tem um dado tipo ImageView
então agora tudo combina
00:03:59.770 --> 00:04:01.430
e o erro some.
00:04:01.430 --> 00:04:04.640
No próximo lado,
podemos invocar um método ImageView,
00:04:04.640 --> 00:04:09.180
SetImageResource,
nesse objeto IconImageView object.
00:04:09.180 --> 00:04:12.830
Ainda tem um erro, dizendo
que não aceita símbolos.
00:04:12.830 --> 00:04:17.310
Isso é porque eu não adicionei uma imagem
no nosso aplicativo com a logo do nome.
00:04:17.310 --> 00:04:21.410
Se eu adicionar, o erro some,
então nosso código está correto.
00:04:21.410 --> 00:04:25.400
Esse é o código correto, onde eu armazenei
esse view em um ImageView.
00:04:25.400 --> 00:04:27.330
Por último temos o número 4.
00:04:27.330 --> 00:04:32.080
Eu colei o código no Android Studio
e surpreendentemente não tem erros.
00:04:32.080 --> 00:04:35.960
O código está tentando achar
uma view com o id title,
00:04:35.960 --> 00:04:41.150
e isso deve retornar um view como resposta
e fica armazenado na variável TextView.
00:04:41.150 --> 00:04:43.900
TextView tem um tipo de dado View,
00:04:43.900 --> 00:04:47.940
então isso combina com o lado direito,
então essa linha de código está correta.
00:04:47.940 --> 00:04:51.410
Na próxima linha, vamos pegar
esse objeto, que é um ViewAnd,
00:04:51.410 --> 00:04:54.410
e vamos invocar um método
setVIsibility
00:04:54.410 --> 00:04:58.763
O método usa um parâmetro de entrada
chamado View.GONE.
00:04:58.763 --> 00:05:02.790
Eu posso checar as instruções
para verificar o que significa isso.
00:05:02.790 --> 00:05:06.050
Nas instruções da classe view,
eu posso procurar pelo
00:05:06.050 --> 00:05:08.400
método setVisibility.
00:05:08.400 --> 00:05:11.970
Eu vejo que setVisibility
é um método dentro da classe view.
00:05:11.970 --> 00:05:16.310
É preciso de uma entrada inteira que
represente o estado de visibilidade.
00:05:16.310 --> 00:05:21.175
Os valores possíveis da visibilidade são:
VISIBLE, INVISIBLE, e GONE
00:05:21.175 --> 00:05:24.490
Como setVisibility é um método
dentro da classe view,
00:05:24.490 --> 00:05:26.320
é uma entrada válida.
00:05:26.320 --> 00:05:29.280
Não tem necessidade de lançar
em um TextView,
00:05:29.280 --> 00:05:33.200
por que o método que estamos invocando
é um método da classe view.
00:05:33.200 --> 00:05:36.010
Agora, se estamos tentando
usar o método TextView,
00:05:36.010 --> 00:05:38.860
então vamos precisar
lançar em um TextView.
00:05:38.860 --> 00:05:41.600
Então para esse exercício,
a resposta deve ser: sem erros,
00:05:41.600 --> 00:05:45.930
porque setVisibility é um método view
e não tem problema deixa como objeto view.
00:05:45.930 --> 00:05:47.480
Essas questões foram difíceis.
00:05:47.480 --> 00:05:48.860
Tudo bem se você não acertou.
00:05:48.860 --> 00:05:52.080
No próximo teste, você vai
poder praticar mais.