1 00:00:00,270 --> 00:00:01,540 Vamos olhar o número 1. 2 00:00:01,540 --> 00:00:04,470 Antes de eu falar a resposta, vou copiar esse código e 3 00:00:04,470 --> 00:00:06,700 colar no Android Studio. 4 00:00:06,700 --> 00:00:09,060 Quero mostrar o tipo de erro que podemos ter como resposta. 5 00:00:09,060 --> 00:00:12,090 Agora, quando você estava fazendo o teste você não precisava usar o Android Studio, 6 00:00:12,090 --> 00:00:14,510 você poderia ter resolvido só olhando o código aqui e 7 00:00:14,510 --> 00:00:16,280 então escrito na resposta. 8 00:00:16,280 --> 00:00:19,520 Então, usando ou não o Android Studio, tudo bem. 9 00:00:19,520 --> 00:00:22,260 Para fazer o código funcionar, eu criei um novo projeto e 10 00:00:22,260 --> 00:00:25,270 então modifiquei o arquivo de layout ActivityMain, 11 00:00:25,270 --> 00:00:30,080 para que tivesse várias visualizações com esses ID's que vamos referenciar. 12 00:00:30,080 --> 00:00:31,780 Não tenho certeza como esse layout pareceria, mas 13 00:00:31,780 --> 00:00:36,060 eu só quero colocar as visualizações aqui com os nomes ID correspondentes. 14 00:00:36,060 --> 00:00:38,210 Desse jeito, meu código vai funcionar aqui. 15 00:00:38,210 --> 00:00:42,570 Então, número um, eu colei o código aqui, e eu percebi um erro. 16 00:00:42,570 --> 00:00:46,270 Adroid Studios diz que não pode determinar o método setText. 17 00:00:46,270 --> 00:00:47,780 Se você lembrar o último vídeo, 18 00:00:47,780 --> 00:00:51,510 Eu mencionei que setText é um método TextView. 19 00:00:51,510 --> 00:00:55,100 Isso significa que você só pode invocar esse método em objetos TextView. 20 00:00:55,100 --> 00:00:57,920 Nesse caso, vamos chamar chamar de nameTextView. 21 00:00:57,920 --> 00:01:00,705 Um nameTextView deve ser um objeto view, 22 00:01:00,705 --> 00:01:04,057 e precisamos mudar para um objeto TextView. 23 00:01:05,990 --> 00:01:08,942 Então recebemos um erro dizendo que não há compatibilidade. 24 00:01:08,942 --> 00:01:12,390 Um textview, um objeto tipo TextView é requerido, mas 25 00:01:12,390 --> 00:01:15,700 ao invés disso ele acha um objeto typeview. 26 00:01:15,700 --> 00:01:18,570 Isso porque findviewbyID retorna uma visualização, e 27 00:01:18,570 --> 00:01:21,950 esse lado esquerdo requer um TextView. 28 00:01:21,950 --> 00:01:24,860 Isso significa que precisamos modificar isso 29 00:01:24,860 --> 00:01:28,730 para receber a visualização por findViewById 30 00:01:28,730 --> 00:01:30,800 Então podemos armazenar tudo isso 31 00:01:30,800 --> 00:01:35,090 com o nome nameTextView na variável do lado esquerdo. 32 00:01:35,090 --> 00:01:40,760 Então o erro some, e podemos colocar o texto "Laura" nesse TextView. 33 00:01:40,760 --> 00:01:44,510 O erro está na linha 1, então eu escrevi o código certo aqui. 34 00:01:44,510 --> 00:01:49,540 A explicação geral é que precisamos lançar essa view em um TextView 35 00:01:49,540 --> 00:01:53,050 e então armazenar dentro da variável nameTextView. 36 00:01:53,050 --> 00:01:56,340 Desse jeito, nós podemos invocar nameTextView.setText 37 00:01:56,340 --> 00:01:59,850 que é um método TextView, na próxima linha de código. 38 00:01:59,850 --> 00:02:00,830 Vamos para o número dois. 39 00:02:00,830 --> 00:02:03,290 Vou copiar o código e colar no Android Studio. 40 00:02:04,540 --> 00:02:06,590 Esse é o código que eu copiei. 41 00:02:06,590 --> 00:02:09,620 A primeira linha parece correta, sem erros. 42 00:02:09,620 --> 00:02:11,550 Mas a segunda linha está sublinhada de vermelho e 43 00:02:11,550 --> 00:02:14,420 e isso quer dizer que existe um erro de digitação. 44 00:02:14,420 --> 00:02:17,990 Quer dizer que um string é necessário mas o código é int. 45 00:02:17,990 --> 00:02:19,290 Para entender melhor, 46 00:02:19,290 --> 00:02:24,250 temos que olhar o método getMaxLines nas instruções do TextView. 47 00:02:24,250 --> 00:02:26,580 Nas instruções, vou procurar por 48 00:02:26,580 --> 00:02:28,650 método getMaxLines. 49 00:02:28,650 --> 00:02:29,770 E aqui está. 50 00:02:29,770 --> 00:02:31,120 Não existem parâmetros de entrada, 51 00:02:31,120 --> 00:02:33,520 e o valor de retorno desse método é inteiro. 52 00:02:34,758 --> 00:02:38,194 Então era por isso que o Android Studio estava reclamando, por que esse método, 53 00:02:38,194 --> 00:02:39,911 se está dando como resposta um inteiro 54 00:02:39,911 --> 00:02:42,700 mas estamos tentando armazenar como uma variável string. 55 00:02:42,700 --> 00:02:47,870 Como resultado, eu preciso mudar esse tipo de dado da variável para uma inteira. 56 00:02:47,870 --> 00:02:49,470 Então o erro some. 57 00:02:49,470 --> 00:02:52,620 Então, o valor de retorno desse método é inteiro. 58 00:02:52,620 --> 00:02:56,060 Logo, podemos armazenar nessas variáveis maxLines. 59 00:02:56,060 --> 00:02:57,870 Ainda tem um aviso. 60 00:02:57,870 --> 00:03:00,870 Dizendo que a variável maxLines nunca foi usada. 61 00:03:00,870 --> 00:03:02,260 Mas isso é só um código snippet. 62 00:03:02,260 --> 00:03:04,760 Eu presumi que se isso fosse um aplicativo comum, 63 00:03:04,760 --> 00:03:06,740 iríamos usar essa variável depois. 64 00:03:07,800 --> 00:03:11,380 Então o erro está na segunda linha e esse é o código atualizado. 65 00:03:11,380 --> 00:03:14,340 A explicação é que o valor de retorno desse método deveria 66 00:03:14,340 --> 00:03:15,480 ser inteiro. 67 00:03:15,480 --> 00:03:16,620 Vamos para o exercício três. 68 00:03:17,980 --> 00:03:19,830 Esse é o código do exercício três. 69 00:03:19,830 --> 00:03:22,960 Eu copiei e colei o código no Android Studio. 70 00:03:22,960 --> 00:03:25,812 Aparece um erro com uma mensagem dizendo que os tipos são incompatíveis. 71 00:03:25,812 --> 00:03:29,400 Requer um ImageView, mas é um view. 72 00:03:29,400 --> 00:03:32,740 Esse erro é similar ao que acabamos de ver com o TextView. 73 00:03:32,740 --> 00:03:34,960 Esse método tem como resposta uma view. 74 00:03:34,960 --> 00:03:38,270 E do lado esquerdo, nós estamos tentando armazenar dentro de um ImageView. 75 00:03:38,270 --> 00:03:42,370 Então precisamos mudar esse objeto view para um ImageView 76 00:03:42,370 --> 00:03:47,330 Isso é valido por que o view no ícone ID na verdade é um ImageView, 77 00:03:47,330 --> 00:03:49,630 então tudo bem lançar isso num imageview 78 00:03:49,630 --> 00:03:52,560 Agora do lado direito, equivale a um ImageView, 79 00:03:52,560 --> 00:03:55,700 podemos armazenar dentro da variável do lado esquerdo. 80 00:03:55,700 --> 00:03:59,770 Essa variável tem um dado tipo ImageView então agora tudo combina 81 00:03:59,770 --> 00:04:01,430 e o erro some. 82 00:04:01,430 --> 00:04:04,640 No próximo lado, podemos invocar um método ImageView, 83 00:04:04,640 --> 00:04:09,180 SetImageResource, nesse objeto IconImageView object. 84 00:04:09,180 --> 00:04:12,830 Ainda tem um erro, dizendo que não aceita símbolos. 85 00:04:12,830 --> 00:04:17,310 Isso é porque eu não adicionei uma imagem no nosso aplicativo com a logo do nome. 86 00:04:17,310 --> 00:04:21,410 Se eu adicionar, o erro some, então nosso código está correto. 87 00:04:21,410 --> 00:04:25,400 Esse é o código correto, onde eu armazenei esse view em um ImageView. 88 00:04:25,400 --> 00:04:27,330 Por último temos o número 4. 89 00:04:27,330 --> 00:04:32,080 Eu colei o código no Android Studio e surpreendentemente não tem erros. 90 00:04:32,080 --> 00:04:35,960 O código está tentando achar uma view com o id title, 91 00:04:35,960 --> 00:04:41,150 e isso deve retornar um view como resposta e fica armazenado na variável TextView. 92 00:04:41,150 --> 00:04:43,900 TextView tem um tipo de dado View, 93 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. 94 00:04:47,940 --> 00:04:51,410 Na próxima linha, vamos pegar esse objeto, que é um ViewAnd, 95 00:04:51,410 --> 00:04:54,410 e vamos invocar um método setVIsibility 96 00:04:54,410 --> 00:04:58,763 O método usa um parâmetro de entrada chamado View.GONE. 97 00:04:58,763 --> 00:05:02,790 Eu posso checar as instruções para verificar o que significa isso. 98 00:05:02,790 --> 00:05:06,050 Nas instruções da classe view, eu posso procurar pelo 99 00:05:06,050 --> 00:05:08,400 método setVisibility. 100 00:05:08,400 --> 00:05:11,970 Eu vejo que setVisibility é um método dentro da classe view. 101 00:05:11,970 --> 00:05:16,310 É preciso de uma entrada inteira que represente o estado de visibilidade. 102 00:05:16,310 --> 00:05:21,175 Os valores possíveis da visibilidade são: VISIBLE, INVISIBLE, e GONE 103 00:05:21,175 --> 00:05:24,490 Como setVisibility é um método dentro da classe view, 104 00:05:24,490 --> 00:05:26,320 é uma entrada válida. 105 00:05:26,320 --> 00:05:29,280 Não tem necessidade de lançar em um TextView, 106 00:05:29,280 --> 00:05:33,200 por que o método que estamos invocando é um método da classe view. 107 00:05:33,200 --> 00:05:36,010 Agora, se estamos tentando usar o método TextView, 108 00:05:36,010 --> 00:05:38,860 então vamos precisar lançar em um TextView. 109 00:05:38,860 --> 00:05:41,600 Então para esse exercício, a resposta deve ser: sem erros, 110 00:05:41,600 --> 00:05:45,930 porque setVisibility é um método view e não tem problema deixa como objeto view. 111 00:05:45,930 --> 00:05:47,480 Essas questões foram difíceis. 112 00:05:47,480 --> 00:05:48,860 Tudo bem se você não acertou. 113 00:05:48,860 --> 00:05:52,080 No próximo teste, você vai poder praticar mais.