O Bootcamp completo de desenvolvimento de aplicativos para Android e Kotlin | Kioomars Jonood | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

O Bootcamp completo de desenvolvimento de aplicativos para Android e Kotlin

teacher avatar Kioomars Jonood, Project Manager & Teacher

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      Apresentação

      2:33

    • 2.

      Dia 1: instale o JDK e o Android Studio

      17:08

    • 3.

      Dia 1: crie a primeira aplicação

      18:04

    • 4.

      Dia 1: verificando o primeiro projeto

      9:49

    • 5.

      Dia 1: concluindo o primeiro projeto (parte 1)

      11:45

    • 6.

      Dia 1: concluindo o primeiro projeto (parte 2)

      15:16

    • 7.

      Dia 2: teste do dia 1 respondido

      2:06

    • 8.

      Dia 2: crie o aplicativo (projeto vazio)

      7:56

    • 9.

      Dia 2: adicione uma atividade no Android

      15:33

    • 10.

      Dia 2: crie layout: parte 1 (layouts de restrição - editar texto)

      17:11

    • 11.

      Dia 2: crie layout: parte 2

      13:11

    • 12.

      Dia 2: crie layout: parte 3 (TextView)

      17:05

    • 13.

      Dia 2: noções básicas de design de materiais no Android

      26:13

    • 14.

      Dia 2: teste

      1:50

    • 15.

      Dia 3: dia 2: teste respondido

      2:23

    • 16.

      Dia 3: adicione buttons (tipos de butão e materialButton)

      10:57

    • 17.

      Dia 3: noções básicas de layout linear no Android

      18:12

    • 18.

      Dia 3: trabalhando com textos e cordas (como gerenciar valores de Stings no Android)

      17:07

    • 19.

      Dia 3: introdução a aplicativos Android e localização em vários idiomas

      19:45

    • 20.

      Dia 3: propriedades de buttons

      15:22

    • 21.

      Dia 3: teste

      1:32

    • 22.

      Dia 4: teste do dia3 respondido

      2:08

    • 23.

      Dia 4: seção de resultados

      4:16

    • 24.

      Dia 4: seção de resultados, parte 2

      11:02

    • 25.

      Dia 4: ferramentas

      5:34

    • 26.

      Dia 4: variáveis, parte 1

      15:39

    • 27.

      Dia 4: variáveis, parte 2

      8:11

    • 28.

      Dia 4: funções

      5:47

    • 29.

      Dia 4: erros e LogCat

      4:47

    • 30.

      Dia 4: se for

      4:08

    • 31.

      Dia 4: propriedade de erro de edição

      15:07

    • 32.

      Dia 4: menos

      2:19

    • 33.

      Dia 4: teste

      1:07

    • 34.

      Dia 5: Day4QuizAnswer

      3:33

    • 35.

      Dia 5: reveja o que aprendemos até agora e alguma dica

      9:06

    • 36.

      Dia 5: Gradle e encadernação parte 1

      15:10

    • 37.

      Dia 5: Gradle e encadernação parte 2

      12:24

    • 38.

      Dia 5: Gradle e encadernação parte 3

      9:06

    • 39.

      Dia 5: Gradle e ver a parte 4

      18:28

    • 40.

      Dia 5: codificando os outros buttons

      3:58

    • 41.

      Dia 5: retornando valores de funções

      22:15

    • 42.

      Dia 5: valores de entrada de uma função

      21:41

    • 43.

      Dia 5: dicas extras

      24:25

    • 44.

      Dia 5: Day5Quiz

      0:56

    • 45.

      Dia 6: Day5QuizAnswers

      2:02

    • 46.

      Dia 6: valor decimal

      16:25

    • 47.

      Dia 6: Apk de exportação e dicas Part1

      20:23

    • 48.

      Dia 6: Apk de exportação e dicas Part2

      15:38

    • 49.

      Dia 6: Apk de exportação e dicas Part3

      27:44

    • 50.

      Dia 6: Apk de exportação e dicas Part4

      13:35

    • 51.

      Dia 7: introdução do jogo

      25:30

    • 52.

      Dia 7: página do jogo

      18:59

    • 53.

      Dia 7: organize objetos de página de jogos

      26:22

    • 54.

      Dia 7: outras mudanças na visão

      20:19

    • 55.

      Dia 8: escrevendo códigos de jogo primários parte1

      18:39

    • 56.

      Dia 8: escrevendo códigos de jogo primários parte2

      22:45

    • 57.

      Dia 8: tipos de dados numéricos

      29:18

    • 58.

      Dia 8: grande número inteiro

      22:51

    • 59.

      Dia 9: verificando a estimativa do usuário Part1

      30:13

    • 60.

      Dia 9: verificando a estimativa do usuário Part2

      21:07

    • 61.

      Dia 9: verificando a estimativa do usuário Part3

      17:05

    • 62.

      Dia 9: verificando a estimativa do usuário Part4

      26:22

    • 63.

      Dia 10: relatório Button, parte 1

      20:35

    • 64.

      Dia 10: relatório Button, parte 2

      21:19

    • 65.

      Dia 10: relatório Button, parte 3

      20:15

    • 66.

      Dia 10: relatório Button, parte 4

      11:36

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

236

Estudantes

--

Projetos

Sobre este curso

Obtenha a carreira dos seus sonhos com o Bootcamp completo de desenvolvimento de aplicativos A-Z para Android e Kotlin!

Você está buscando um emprego dos sonhos no desenvolvimento do Android? Ou talvez você tenha uma ideia fantástica para um aplicativo Android, mas não tem ideia de como fazê-lo? Este curso foi projetado apenas para você. Não há necessidade de pesquisar sobre como desenvolver um aplicativo Android.

Por quê?

Você vai aprender todos os aspectos do desenvolvimento do Android dos níveis iniciantes

Você vai aprender aqui com mais de 10 anos de experiência em programação e ensino

Você vai passar por muitos pequenos projetos e projetos da vida real com muitos exemplos, dicas e truques.

O que você vai aprender e construir?

  • Simples

  • Jogo de Adivinha o Número

  • Calculator avançado (adicione funcionalidade ao simples curso)

  • Aplicativo de notas

  • E muitos outros aplicativos (aplicativos simples e da vida real)

Conteúdo principal:

  • Guias passo a passo em código

  • Muitos exercícios

  • Dicas e truques

  • E...

Torne-se profissional em:

  • Programação Kotlin e orientada a objetos

  • Fluxos de controle e estruturas de dados

  • Como usar características do dispositivo

  • Como usar bibliotecas de terceiros

  • Chamadas de API

  • ...

Você acha que este curso é muito pequeno para aprender todos os aspectos do desenvolvimento do Android? Apenas espere pelas próximas atualizações e aproveite o desenvolvimento de aplicativos. Você vai perceber em breve que este curso vai valer a pena!!

Conheça seu professor

Teacher Profile Image

Kioomars Jonood

Project Manager & Teacher

Professor

Samaneh Mazidi SharafAbadi

Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução: Olá, sou Humerus e bem-vindo ao Z completo de desenvolvimento de aplicativos para Android e Catlin dois Z, Este é um curso em que você passará pelo nível iniciante com projetos simples e alcançará níveis profissionais com projetos mais complexos e realistas Tudo o que você precisa é ser persistente e experimentar este curso todos os dias. Em cada dia do curso, passamos por um ciclo de aprendizado, praticamos juntos, recapitulamos juntos e fazemos um teste Se você não gosta de questionários, não se preocupe. Todos os questionários serão respondidos no dia seguinte. Mas eu insisto que primeiro você tente fazer os questionários e exercícios sozinho para poder aprender Durante esse ciclo, tento explicar tudo de maneiras diferentes, para que você possa aprender da maneira mais simples possível. Se você não conseguir algo logo no primeiro vídeo, você o ouvirá durante todo o curso, pois voltaremos a tudo e ao assunto várias vezes para garantir que todo o curso, pois voltaremos a tudo e ao assunto várias vezes para garantir que você os entenda muito bem. Durante este curso, também ensinarei todas as dicas e truques que adquiri ao longo dos anos de minha experiência profissional como desenvolvedor Android, desenvolvedor fullstack e gerente de projetos Você prestará atenção ao seu aplicativo Android tanto do ponto de vista do desenvolvedor quanto do ponto de vista do gerenciamento. 2. 001 instalar a captura com novo microfone: Olá e bem-vindo, vamos instalar. Primeiro, devemos instalar o JDK. Procuramos por Java JDK. Primeiro link, downloads de Java no site da Oracle, clicamos nele. Iremos para esse endereço. Downloads de Joa. Downloads de Joa. Última versão. Você tem uma versão anterior, como você pode ver, mas você quer essa última versão. Eu não tenho Linux. Eu não tenho Mac OS. Então, eu não preciso deles. Se você tiver essas coisas, poderá instalá-las. Mas eu tenho janelas. Então eu clico nas janelas. Temos a versão 64. Então, em qual versão devo usar? Simplesmente neste PC. Eu clico com o botão direito no espaço vazio, por exemplo, aqui. Veja, não sobre os tolos. Aqui ou aqui, em um espaço vazio. E eu clico nas propriedades. Primeiro, você pode ver que eu tenho o Windows 10 e, em seguida, no tipo de sistema aqui. Você pode ver. Eu tenho um sistema operacional de 64 bits. Então eu tenho 64 bits. Vamos voltar para a página da Oracle. Também temos 64 apostas aqui. Então, baixamos isso clico com o botão direito do mouse e salvo o Link, e eu o salvo no meu desktop. Na área de trabalho, eu já salvo isso. E se você quiser, você pode pressionar salvar. Demora alguns minutos para baixá-lo. Depois disso, está terminado. Eu também baixei o Android Sudo. Para isso, eu pesquiso o Android Studio no Google. Entendo, temos esse desenvolvedor que é android.com e clicamos nele Estamos no site de áudio do Android e basta clicar em baixar. Nós temos essa página. Nós descemos e aceitamos esse acordo. Claro, depois de lê-lo, podemos baixar o aplicativo. Clicamos nele e isso inicia o download. Depois de concluído, também temos esse Android Sudio no arquivo do instalador Esse telefone. Eu tenho os arquivos que eu baixei no meu desktop. Primeiro, instalamos o JDK. Devemos clicar duas vezes nele ou clicar com o botão direito do mouse em, clicar em instalar Vamos clicar duas vezes nele. Este é o guia do instalador. Simplesmente pressionamos Avançar. Este é o local onde o ova instala em seu sistema, o ova o desenvolve, como você pode ver na parte superior. Eu aceito esse local padrão, pressiono Avançar e ele começa a ser instalado. Como você pode ver, a instalação do kit de desenvolvimento Java foi concluída com sucesso. Escrevemos CMD porque queremos acessar o prompt de comando. Nós escrevemos CMD. Temos esse prompt de comando. Podemos clicar nele ou simplesmente pressionar. Temos o prompt de comando. Nós escrevemos espaço em Java. Onde termine e pressione inter. O que nós temos? Temos a versão Java 22.0 0.1 Então, instalamos com sucesso o kit de desenvolvimento Java neste JDK e verificamos se fizemos a coisa certa Portanto, agora podemos ter certeza de que instalamos o JDK corretamente. Vamos para o próximo nível. Devo mencionar que você deve primeiro instalar o JDK, não o Android Studio primeiro, o JDK e, em seguida, o Android Studio, clicar com o botão direito do mouse, executar como administrador ou clicar Vamos fazer dessa maneira. Ou clique duplo. Ok. Em seguida, o que temos aqui, verificado. Isso é um dispositivo virtual Android verificado. O que é isso? Dispositivo virtual para testar seus aplicativos antes de exportar esses APCs para telefones reais Você pode testar esses dispositivos virtuais dentro do seu computador sem nenhum telefone, apenas com seus computadores. Então, de quanto espaço precisamos? Portanto, devemos ter esse espaço em nosso computador também. É claro que, no futuro, devemos acrescentar algumas outras coisas. Portanto, verifique se você tem espaço suficiente no seu computador. Talvez pelo menos 50 gigabytes. E eu acho que é melhor. Você faz isso na sua unidade de CD, é muito mais fácil. Portanto, você deve reservar cerca de 50 gigabytes em seu CDI E eu também recomendo SSD em vez de disco rígido. Acho que é melhor mencionar. Ok, pressione Avançar. Onde devo em um cL? Como eu disse, acho que são melhores localizações padrão na unidade de CD. É mais fácil porque, sem nada para fazer, todas as outras coisas podem se encontrar. Por exemplo, e você encontra facilmente o JDK porque esse JDK no local padrão ou outras coisas que adicionaremos no futuro encontram todos os De qualquer forma, resumindo a história, locais padrão são os melhores e certifique-se ter cerca de 50 gigabytes no seu SST, melhor Próximo. E como devemos chamá-lo no seu menu inicial? E leia você, é claro, eu não troco isso apenas em uma barraca Vamos esperar alguns minutos, então isso acabou. É baseado na velocidade do seu computador, talvez mais do que alguns minutos. Como eu tenho SSD, demorou cerca de um minuto ou menos Em seguida, e comece. Eu não vim, então não importe a configuração. Imprensa. Acho melhor enviar estatísticas de uso ao Google para ajudar a melhorar o Android Studio. Android Studio, encontre os componentes do SDK disponíveis para nós. Como você pode ver, disse bem-vindo. Basta pressionar Avançar. Como queremos configurar nosso estúdio Android? Acho que uma coisa típica é melhor. O que é certo? Quais são as melhores coisas. Muitos deles eles escolhem para nós. Pressione Avançar. Eu disse: Nós fazemos essas coisas por você. Está tudo bem? Dito isso, se você quiser revisar ou alterar alguma configuração de instalação , pode dizer: Quero personalizar. Mas se não, STCs e outras coisas, nós os instalamos para você De qualquer forma, todas essas coisas são boas. Basta pressionar Avançar. Aceito a todos, eu deveria aceitar a licença e terminar. Ele começa a ser baixado. Bem, nossa instalação foi concluída esses componentes foram baixados e instalados com sucesso. Então, agora podemos pressionar finalizar este botão de finalização. Agora temos o Android Studio. E a página de boas-vindas do Studio. Nesta página, podemos criar um novo projeto, projeto aberto e outras coisas. Temos mais essas ações. Pressione SDK Manager. Como podemos ver, instalamos STCs e temos essa aparência e comportamento na parte superior. Nós clicamos nele. Temos essa nova interface de usuário. Verificamos que o estúdio Andrew marcou a opção Ativar Nova UI por padrão. Não mudamos isso porque acho que a nova interface do usuário é melhor. É muito melhor e também na aparência. Nosso tm está escuro. Nós temos outras coisas. Você vê a luz. Luz com cabeçalho de luz, Drácula e alto contraste Eu acho que o escuro é bom. É bom. Eu uso escuro na maioria das vezes. Então, não há mudanças aqui, mas eu só quero que você veja, temos essa aparência, temos esse novo olho, e é bom por padrão. Mas se você quiser, pode mudar isso para luz ou qualquer outra coisa. Eu prefiro este porque é melhor para meus olhos podemos ver que temos esse gerenciador de dispositivos virtuais. E dizemos permitir o acesso, em qualquer rede pública ou privada. Temos essa fatura virtual aqui. Se quisermos criar uma nova voz virtual, como podemos ver, já temos uma porque dizemos e lemos que o estúdio faz todas essas coisas por nós. Mas se quisermos criar uma nova, clicamos nesse botão de adição, nesse botão de adição, criamos voz virtual, clicamos nela. À esquerda, temos telefone, tablet, desktop, TV e até mesmo relógios semelhantes a sistemas operacionais. Podemos escolher um deles e pressionar Avançar, ou até mesmo criar um novo perfil de hardware e ter um perfil de hardware personalizado que não existe nessas coisas. E nós cancelamos. E quando descobrimos qual dessas coisas queremos, pressionamos Avançar. De qualquer forma, eu simplesmente cancelo. E isso é um dispositivo virtual. Agora, é hora do nosso primeiro projeto. Devo dizer que no próximo vídeo gravado alguns meses antes, mostro como criar novos projetos. Mas, por enquanto, já que vi Andre the Sudio desde o início, por que fiz isso? Porque Andrew D Sudo na instalação mudou um pouco, e eu só quero mostrar a vocês o que há de mais recente na instalação, como a versão mais recente do Andrew D Cdio Por causa disso, eu recapturo este vídeo aberto. No próximo projeto, você pode ver o novo projeto, mas, como eu disse, alguns meses de qualquer maneira. Eu só quero te mostrar quando você pressiona OK. E, você pergunta: Você confia neste projeto? Você confia nessa fonte que está abrindo? Eu só quero te mostrar isso. Podemos pressionar essa confiança ou podemos visualizar no modo de segurança. Você pode escolher o que quiser. Como é meu próprio projeto, eu me criei com vocês em alguns dias no futuro. Aulas. Eu apenas pressiono Trust Project, e eu posso verificar. Eu confio no projeto neste local. Você não precisa me perguntar essas coisas? Eu confio neste local. E eu confio porque é meu próprio projeto. E é isso. Obrigada E no próximo vídeo, criamos um novo projeto juntos. 3. Dia 1: Crie o primeiro aplicativo: Ok, podemos abrir o Android Studio clicando duas vezes nele. Agora queremos criar um novo projeto. Nosso primeiro projeto, clicamos neste botão, novo projeto. Podemos ver alguns modelos aqui. Podemos escolher qualquer um deles. Esses modelos são alguns aplicativos pequenos com códigos básicos. Por exemplo, temos atividades básicas de visualizações com esse botão de adição. E também temos outras coisas como atividades de navegação ou atividades visualização de navegação por botões. Todos eles têm atividades e códigos simples. Se há tantos modelos diferentes para você, não se preocupe, nós garantimos. Portanto, neste curso, você mesmo pode criar a maioria dessas atividades e modelos de atividade. Como você pode ver abaixo de cada um deles, você pode descrever atividade. A atividade é simplesmente chamada como uma página, mas não tem exatamente a aparência de uma página. Podemos ser mais específicos posteriormente no curso, mas, por enquanto, não considere a atividade como em uma página. Por enquanto, começamos com uma atividade vazia. Clicamos em Avançar ou clicamos duas vezes nele. Você pode pressionar anterior para voltar à página anterior desta forma. Ao escolher uma atividade vazia, você pode pressionar Avançar ou clicar duas vezes nela. Está bem? Você tem nome. Esse nome que será mostrado no lançamento do Android para este aplicativo. Como você quer chamar seu aplicativo? Lembre-se de que, ao instalá-lo em qualquer telefone, você pode ver esse nome, esse nome como o nome do seu aplicativo nesse telefone. Esse nome deve mostrar qual é o seu aplicativo. Então eu chamo meu aplicativo com Y maiúsculo , H maiúsculo e digo oi. Agora, nome do pacote. Qual é o nome do pacote? Acho que de várias maneiras para explicar isso, mas da maneira mais simples que posso explicar para você, da maneira mais simples, imagine cada casa em sua cidade tenha um código postal exclusivo. Duas casas com o mesmo código postal podem ser encontradas. Por quê? Porque se encontrarmos duas casas com o mesmo código postal, como os correios podem fazer a diferença entre elas? Os correios podem decidir que esse pacote pertence a um deles e o outro pertence ao outro De qualquer forma. Resumindo, cada casa com cada caixa postal tem um código postal exclusivo Nunca duas casas têm o mesmo código postal. Isso é longo, mas acho que posso mostrar minha opinião e espero que você entenda o que estou dizendo. O nome do pacote é o mesmo que o código postal. Não deve ser duplicado. Ok, Andrew, o estúdio, adicione meu nome (nome do aplicativo no final do nome do pacote. Mas tem outras partes separadas por pontos. Por exemplo, posso colocar meu nome de domínio aqui, 7204. Ok, vemos esse erro na parte inferior. Um dígito não pode ser o primeiro caractere em uma declaração de pacote O que devemos fazer? Este é meu site. Como este é meu site, quero que seja o primeiro nome do meu pacote. Eu tenho.com, primeiro escrevo o com, depois meu site é sete x 24 Isso é 7204 extra. E minha inscrição é diga olá. Esse nome de pacote é exclusivo porque começa com meu nome de domínio e termina com o nome do meu aplicativo. Diga oi. No caso do meu problema de seu nome de domínio começar com um número, como devemos corrigir? Porque isso acontece de tempos em tempos. Você pode ter o mesmo problema. Bem, vamos escrever abaixo da linha antes das sete. Você vê que o caractere abaixo da linha não pode ser o primeiro caractere em um segmento de pacote. Então eu escrevo site, nome do meu pacote é com site 7204 layer, diga oi É único porque ninguém mais tem um site com esse nome no final desse site. Porque eu quero fazer a diferença entre meus aplicativos que eu escrevo, diga oi. Eu posso entender que este é o aplicativo, é o aplicativo say hi. Como este curso começa nos níveis básicos, tentarei explicar tudo da forma mais simples possível. Vai demorar um pouco, mas você aprenderá muito bem todos os conceitos básicos. De qualquer forma, como eu disse, isso é único. E mais tarde, quando você publicar seu aplicativo na Play Store, Google e em todos os dispositivos Android, conheça seu aplicativo com esse nome de pacote. Alguns tutoriais do Android podem dizer que, se você não tiver um site, por exemplo, escreva um exemplo aqui Nunca faça isso. Você pode usar seu próprio nome. Seu primeiro nome, está tudo bem. Você pode usar o nome da sua empresa, você pode usar qualquer coisa. Mas, por favor, nunca escreva um exemplo aqui. Isso não está certo. Por exemplo, se eu não tiver nenhum, não escrevo meu sobrenome, mas nunca, exemplo, ok? Chega do nome do pacote. Vamos ver, local seguro, isso está lá. Seu projeto será salvo em seu disco rígido ou estado. Quando você quiser que esse projeto seja acessado novamente, use esse local nomeie-o corretamente por padrão na pasta Projeto do Android Studio. O Android Studio cria um projeto com o nome “ Digamos que eu mudei a localização”. OK. Vamos apertar esse botão. Essa é a pasta que o Andrew Studio, por padrão, selecionou para mim. Eu mudei para Desktop. Consegue ver essa pequena flecha? Eu pressiono isso para que eu possa ver as outras pastas. Nome da pasta I, Projetos. Eu clico aqui, agora posso salvá-lo. Na minha pasta Projetos na minha área de trabalho. Se eu pressionar a seta ao lado dos projetos, você não verá nenhuma outra pasta porque ela está vazia. Você pode ver que isso está vazio, ok? Mas é melhor ter uma pasta dentro dessa pasta do projeto para que eu possa encontrar meu projeto entre outros projetos. OK. Qual é o local? Eu tenho o diretório inicial, tenho o diretório da área de trabalho, tenho um novo diretório. Quero criar uma nova pasta. Agora, o Android Studio me perguntou qual é o nome dessa nova pasta? Eu digo zero abaixo da linha, digo maiúsculo, digo oi. Essa é minha boneca. Agora eu posso pressionar OK. Ou pressione no Android Studio, crie A com o nome, diga olá para. Você pode ver isso. Esse é o F que o Android Studio cria para mim. Eu pressiono OK. E você pode ver o endereço na parte superior. Ok, esse é meu endereço. Todas as minhas fontes dizem aqui agora, SDK mínimo. O que é isso? É a versão mais baixa do Android que pode executar seu aplicativo. Seu aplicativo não pode ser instalado na versão inferior. Por exemplo, se você tiver seu Android PK, não poderá instalá-lo no Android seis porque o SDK mínimo é o Android Portanto, você precisa usar no mínimo o Android sete para instalar esse aplicativo. Você pode ler, seu aplicativo será executado em aproximadamente 96,1% dos dispositivos Isso significa que 96,1% de todos os dispositivos Android reconhecidos pela Google Play Store têm Android 7 Cerca de 2% 0,9 deles são Android seis ou menos. Se você alterá-lo, por exemplo, digamos que o Android oito. Agora, seu aplicativo será executado em aproximadamente 93,4% dos dispositivos. Por enquanto, o Android 7 está ok. Podemos ter uma versão do Android, mas elas estão desatualizadas e eu não quero isso. Talvez você use alguns novos recursos do Android que não existem em versões do Android como o Android sete. E por causa disso, talvez você queira o Android oito no Android Noi Mas tenha cuidado, se você, por exemplo, usa o Android Noi, cerca de 14% dos dispositivos não conseguem instalar seu aplicativo De qualquer forma, chega disso. Escolhemos aquele Android 7. OK. Crie a linguagem de configuração. Temos três opções, mas continuamos com o Catlin recomendado Talvez no curso também examinemos as outras opções, mas seguimos o idioma recomendado. Se você tem uma versão mais antiga do Android, por exemplo, alguns anos neste local, você também pode escolher o Java para seu aplicativo. Mas, como você vê, você não tem Java. De qualquer forma, você só tem corte e ranhura. Deixo com o recomendado. OK. Tudo está bem. Discutimos tudo isso e os explicamos. Vamos pressionar Concluir. Demora cerca de dez a 20 segundos. Então, meu projeto Create, e como você vê, meu Radial vai baixar alguns arquivos e alguns pacotes para o meu projeto Ok, acabou. Demora cerca de um minuto para mim. Continuaremos o resto desse projeto no próximo vídeo. 4. Dia 1: Como verificar o primeiro projeto: Ok, chegamos até aqui e acabamos de começar nosso novo projeto. Nosso projeto não tem atividade sublinhada. Mame se você estiver um pouco familiarizado com, e talvez se pergunte se existem arquivos de layout Você os procura na pasta do projeto, vê os arquivos e não consegue encontrá-los. Está tudo bem Vou te mostrar o que aconteceu primeiro. Vamos ver o que temos aqui. Temos nosso seguidor, o nome do pacote e, no ponto de atividade principal do arquivo Catlin, a extensão do arquivo é kt Ok. Dentro desse arquivo, temos alguns códigos. Deixe-me ver isso rapidamente. Em seguida, procuraremos os arquivos XML. Temos o nome do pacote. Esse é o nome do pacote que definimos quando criamos o projeto pela primeira vez. Depois disso, temos essa importação. Nós temos essa flecha. Se você abri-lo, temos algumas bibliotecas importadas. Pela primeira vez, quando você cria um projeto no Android Studio, ele precisa de alguns pacotes e arquivos para baixar. Dependendo da sua conexão com a Internet , pode levar de um a 10 minutos para baixar todos os arquivos necessários. Seja paciente de qualquer maneira Você não precisa se preocupar com essa parte agora. Abordaremos tudo isso em vídeos futuros. Vamos dar uma olhada nas partes principais. Aqui temos a atividade principal, como acontece com uma função chamada e criada que é executada toda vez que você abre seu aplicativo no telefone. Nessa função, outra função greeting é chamada para a qual um valor de string é passado Por exemplo, usuário. Você pode alterá-lo para o que quiser. Aqui também temos essa função , nome de saudação, e ela usa uma string dentro dela, criamos um texto para esse texto que criamos Definimos um atributo, texto de atributo com o valor, digamos alto. Você se lembra do nome? Diga alto. Seja qual for esse nome. Eles dizem alto 999. Eu o escrevi, esse 999 depois dele e mudo esse texto. Não se preocupe com esses comandos por enquanto. Abordaremos todos eles no futuro. No meu aplicativo, com esse botão no dispositivo virtual que adicionei ao Android Studio nos vídeos anteriores. Depois de algum tempo, meu aplicativo abrirá em dispositivo virtual, como você pode ver. Ok, estou esperando. Ok, está pronto. Eu posso ver na minha voz visual que é o pixel L P 34. Eu posso ver isso, este é o meu pixel Cel API 34. Eu tenho alguns outros botões, eu os cubro mais tarde. Se eu ampliar, você pode ver, digamos, alto 999 como você vê dentro do texto, porque eu crio esse texto e dentro dele eu dou a ele um texto com o valor de, digamos, nome alto O nome é 999. Eu tenho isso. Deixe-me isso. Ok. E amplie um pouco. Se você criar um arquivo APK do seu aplicativo e instalá-lo em um dispositivo de telefone real, verá exatamente a mesma saída que vê aqui. Assim, significa que tudo o que você vê no dispositivo virtual é uma prévia do seu dispositivo real. Todos os usuários de telefones, podem testá-lo aqui primeiro. Ok. Agora vamos tentar encontrar os arquivos XML onde nosso layout deveria estar. Como você se lembra, criamos nosso novo projeto a partir do clima temperado. Você pode escolher arquivo, novo novo projeto para criar um novo projeto, para criar esse projeto de atividade vazio. Mas algo que você talvez não saiba, esse logotipo é para compor, o projeto que fizemos. Alguns programadores experientes cometem esse erro Como vi nos últimos meses, alguns dos meus próprios programadores cometem exatamente o mesmo Por quê? Porque está no topo e parece uma atividade saudável. Mas está composto. O que é composto? O Compose é uma nova forma de criar layouts para aplicativos Android. Você cria objetos e itens em cada página do aplicativo usando a linguagem Catlin O Compose é bom para aplicativos grandes com muitas páginas. E como a primeira parte deste curso está no nível iniciante, continuaremos com os layouts de Mal, mas voltaremos a compor no futuro por que escolhi esse formato No último vídeo, eu queria mostrar que você pode fazer a mesma coisa e ficar confuso. Até mesmo alguns dos desenvolvedores experientes com quem trabalho fizeram a mesma coisa. Então, essa nova versão do Android Studio foi lançada e não sabia como resolver o problema. Durante este curso, posso fazer o mesmo cometendo erros deliberados, para que você possa aprender com eles. Se você quiser criar um aplicativo com o layout X ML, selecione a atividade de uso vazia. Ok, pressione Avançar. Vamos nomear o aplicativo que eu escrevo, digamos alto com XML principal. Quero dizer que este aplicativo está usando o layout XML. Claro, não é um bom nome. Você não deveria escrever assim. Você deve escrever o nome que quer que seu aplicativo realmente faça, usuário pode encontrá-lo com esse nome. De qualquer forma, nome do pacote. Deixo isso porque é apenas um SDK mínimo de linguagem de teste. Eu cubro tudo isso. Eu não os repito. Concluir. Ok, agora eu crio meu primeiro projeto, mas desta vez com o layout XM Continuaremos com esse projeto e começaremos a programar no próximo vídeo 5. Dia 1: Como concluir o primeiro projeto (parte 1): Ok, acabei de reabrir meu projeto no Android Studio. Eu vejo essa dica do dia. Você pode conferir essa dica do dia. Não mostre essas dicas na inicialização, mas eu não verifico isso. Eu nunca verifico isso. Por quê? Porque essas são dicas úteis. Por exemplo, vamos ler essa dica. Converta classes Java em Colin. Você pode converter facilmente qualquer classe Java em com a mesma semântica Para fazer isso, selecione o código. Converta o arquivo Java em arquivo Colin no menu principal. De qualquer forma, abordaremos isso no futuro. Ok, de volta ao nosso projeto. Temos duas folhas, a atividade principal e a atividade XML dentro de cada uma delas. Como você pode ver, também existem alguns códigos. Dentro do, há um código. Claro que você pode ver como é, mas ambos têm alguns códigos. Você tem esses códigos em ambos os arquivos porque usa modelos. Se você criar um projeto vazio, você não tem nada e deve criar do zero sozinho. Você pode criar seu projeto a qualquer momento neste menu , Build, Make Project. Quando você pressiona, leva alguns segundos a alguns minutos para criar seu projeto. Se você tiver algum erro ou problema, você não tem essa verificação de tela e você tem esses erros. Você pode ver seu processo de construção nesta janela. E quando você ainda pressiona esse botão Executar para executar seu aplicativo e ver o resultado, você pode ver nesta janela, como está o processo de construção e o que está acontecendo, ok? Vamos minimizar essa janela. Você também tem esse gerenciador de recursos que todos os seus recursos estão aqui. Por exemplo, até suas cores estão aqui e as cordas estão aqui Você tem seus arquivos. Como você tem seu disco rígido, você os tem aqui. Por exemplo, essa atividade principal, você a tem nessa pasta. Sempre que você o perder e quiser novamente, não poderá clicar duas vezes nele e abri-lo. Todos os outros arquivos aqui, você pode acessá-los. Nesta janela do projeto, você tem toda a estrutura do seu projeto. Todos os arquivos de projeto que você tem estão aqui. Você pode ver todos esses arquivos no seu disco rígido. Por exemplo, se eu escrever, clique aqui e abra em Clare Eu tenho isso no meu disco rígido. Está bem? Eu abro o aplicativo, tenho o SRC Eu não os tenho aqui. Por quê? Porque eu deveria usar esse menu suspenso e alterá-lo para projeto. OK. Agora eu tenho a mesma estrutura de bibliotecas e SRC aqui também Se você quiser vê-los aqui, você pode ver no RC das bibliotecas Fuller a fonte exatamente a mesma Você também pode alterá-lo de volta para a estrutura do Android que os categorizou como recomendados Não é exatamente o mesmo no seu disco rígido. De qualquer forma, continuamos com a visualização do Android, também temos todas as outras visualizações. Continuamos com a visualização do Android porque maioria dos programadores usa essa visualização É mais fácil de entender e usar. Ok, resumindo, temos esse arquivo e essa atividade, aquele arquivo XML. O código Cutlin é nosso código de programação que definimos o que aconteceria se alguma outra coisa Por exemplo, e se o usuário clicar em algo, usuário entrar em uma determinada página? E se o usuário fizer qualquer outra coisa? Mas em arquivos XML, definimos a aparência do aplicativo. Por exemplo, você vê que é assim que nosso aplicativo se parece no momento. Um texto com uma quantidade de hello world no meio e uma grande tela ampla. Se temos um arquivo APK e de forma sólida, em um dispositivo Android, mesmo que não seja um telefone, temos uma tela. Uma mensagem com hello world. Podemos até mudar isso. Você vê todo esse texto XML. Podemos mudar todos os atributos dos textos. Por exemplo, temos um texto dentro dessa palavra de saudação do Android. Não se preocupe com as outras coisas. Explicamos todas elas e muitas outras coisas no futuro. Mas, por enquanto, pela maneira mais simples de ter um exemplo alto com capital lá. Lá no alto. Ok, deixe-me voltar para a página de pré-visualização. Você pode ver agora que eu tenho lá no alto assim. Eu mudei o texto. Se eu alterar esse texto, posso vê-lo no meu aplicativo. Mas e se eu quiser clicar em um botão e depois mostrar um texto diferente. Eu não posso fazer isso lá dentro. E ML, eu faço isso cortando aqui dentro. Eu digo se um usuário clicar nesse botão. Então, mude esse texto para outra coisa. Essa é a diferença entre XML e Cut Ling. Espero que você possa entender o que estou dizendo. No futuro. Eu dou o maior número possível de exemplos, você pode entendê-lo completamente. Bem, antes que eu esqueça, se eu tiver alguns recursos, por exemplo, imagens, por exemplo, alguns textos para diferentes idiomas, por exemplo, imagens ou qualquer outra coisa. Você vê os recursos completos que você possa ter todos os seus recursos. Por exemplo, se você tiver algum tipo de texto ou até mesmo cores definidas, você pode colocá-los aqui. Você tem o arquivo color emer para nomear a cor que deseja usar em diferentes partes do seu aplicativo Por exemplo, como você pode ver, você tem esse nome de cor preto com essa quantidade, você pode ver a visualização à esquerda. Essa é a cor preta, a cor branca. Com essa quantidade, você pode ver a cor branca. Visualize também uma string, você tem o nome do seu aplicativo aqui. Você também pode colocar todos os valores de string que deseja usar em todo o seu aplicativo. Por exemplo, alguns para seus botões ou qualquer outra coisa. Espero que você possa entender isso por enquanto. Vamos seguir em frente. Além desses valores, deixe-me mostrar rapidamente que o ícone do seu aplicativo será salvo no mapa. Como você pode ver, o arquivo de layout do seu aplicativo estará na pasta de layout. Como você pode ver, muitas outras coisas. Como eu disse antes, esqueço de vez em quando que você pode ter alguns erros, mas não há nada de errado com seu aplicativo. Eu poderia dizer isso mais algumas vezes porque é importante. Você só precisa entrar, construir e fazer seu projeto novamente. Reconstrua seu projeto. Você pode usar make project ou talvez rebuild project, o que quer que funcione para você e talvez não tenha nenhum erro depois disso Às vezes acontece, mas não o tempo todo. 6. Dia 1: Como concluir o primeiro projeto (parte 2): '. Ok, vamos continuar. Quero adicionar um botão ao meu aplicativo como esse. Eu quero que isso esteja abaixo deste texto. E no meio eu me conectei à direita esquerda. E nesse texto eu também, você pode ver esse atributo aqui. Abra esse atributo a partir da parte superior. Eu adiciono 50. 50 é bom, sim, e você pode ver a margem de 50 DP, os 50 melhores DP Vamos descobrir o que são dimensões DP no Android Studio. O que são dimensões? O valor das dimensões definido em arquivos XML ou de layout é especificado com um número seguido por uma unidade de medida como essa. Para que o usamos em distâncias? Por exemplo, aqui, margem superior é igual a 50, isso significa que você deve adicionar uma margem superior para O que é DP? No próximo slide, continuaremos explicando isso. Temos diferentes unidades de medida para definir o tamanho e as distâncias. Como você pode ver, temos polegadas de pixels, M, M milímetros, pontos T, densidade P, pixel independente e pixel escalável SP Mas os mais usados no Android são DP e SP. Você pode ler as descrições para obter mais informações, mas qual delas é melhor para quê? Recomendação: use P para texto. Use DP para outras dimensões e tamanhos, como margem, peso, altura e outras coisas Vamos saber mais sobre DP. Se você tiver dois dispositivos com a mesma resolução, mas tamanhos de tela diferentes, por exemplo, 5” e 7,1 “, a densidade na tela maior será menor do que no dispositivo de tela menor Por causa disso, se usarmos DP para um tamanho de imagem, essa imagem será maior na tela maior, mas no bolso de menor densidade da tela Todas as telas são agrupadas em bolsos de densidade. Mdpi e outros que podemos ver no Andre Studio. Você define qual tela, qual dessas imagens. Acho que, novamente, é intermediário. Você pode voltar aqui no futuro se não entender nada disso, mesmo quando quiser colocar seu ícone em seu aplicativo, existem sites nos quais você pode dar sua foto neles e eles oferecem todos esses tamanhos. Mesmo assim, se você não entende exatamente qual imagem eles criam para você, todas essas coisas, esta tabela, como você pode ver. Você não precisa se lembrar de todos esses números. Para obter mais informações sobre qual tamanho é melhor para diferentes tamanhos de tela e qual é o tamanho real da mesma imagem em telas de DPI diferentes Nada Você não precisa memorizar todas essas coisas Não se preocupe com todas as imagens , exceto o ícone do aplicativo armazenado na pasta drivel no Android Studio Como você pode ver, temos esses tamanhos. Novamente, a recomendação sempre forneça todos os intervalos de densidade para todas as imagens que você deseja usar no seu aplicativo O que isso significa? Isso significa que se você não tiver algumas dessas imagens em um desses fechamentos de pastas, tamanho será encontrado e usado O que eu deixo claro é que se você não fornecer uma dessas fotos, ela vai para a pasta mais próxima, por exemplo, se você não usar essa foto branca, ela vai aqui. E olha isso, você não coloca isso aqui. Ok. Vá pesquisar aqui. Então, ele o encontra aqui. Ele se redimensiona sozinho porque o Android se redimensiona sozinho. O dano de qualidade. Não é o mesmo que se você fizesse isso sozinho. Por isso, é melhor se abastecer. Você aprenderá mais sobre essas coisas durante este curso. Não se preocupe com isso. Mas, por enquanto, como queremos esclarecer o que é DP ou outra coisa, abordamos todas essas coisas Eu disse isso de novo, não se preocupe. Como observei aqui, o nome do bolso de densidade estará no final do preenchimento rival relacionado Você pode ver no final de cada um deles. É isso mesmo. Vamos voltar ao Android Studio. Ok, eu tenho uma identificação. O que é ID? É o nome que chamamos de nosso objeto. Por exemplo, se eu chamar esse botão de PTN, diga que diz: o que você quer fazer? todos os lugares que usam seu botão, você deseja alterá-los com o BTN. Digamos que eu diga sim, por exemplo, Exclua essa altura. Também dizia: All Peace, que usa seu botão e diz que o usamos com o nome BTN. Diga oi. Você quer alterá-lo para BTN Digamos que eu diga que sim, porque todos os lugares dentro do aplicativo conheciam esse botão como BT. E agora eu mudei o nome, então eles deveriam saber sobre isso. Eu mudei tudo em todos os lugares, aperte esse botão. Explicaremos mais sobre essa janela no futuro. Ok, nós mudamos aqui. Agora, se virmos no código, você pode ver que o ID do botão é igual a BTN, diga olá. Agora eu posso ver que esse texto é um botão, eu quero que esse texto diga olá para nós. Lá você pode ver que mudou. Eu quero que você veja. Você pode mudar isso a partir disso, a partir daqui eu mudei a ideia. E também a partir desse código de lugar, você pode ver que o I acabou dentro do T. Você pode alterá-lo aqui, mas eu quero ver se você pode fazer isso a partir da visualização XML, visualização de texto. Está bem? Ok. Agora, o que nós queremos? Se eu clicar aqui, diga olá ao usuário, altere esse usuário alto para textos diferentes? Como eu deveria fazer isso? Estou dentro do arquivo XML. Como eu disse, precisamos fazer esse tipo de coisa. Se eu clicar em algo deve acontecer. Esse tipo de coisa eu deveria fazer dentro do arquivo de arquivo, ok? Ok. Agora eu quero dizer uma coisa. Se esse padrão clicar aqui, quero executar algum código para esse padrão de dentro para fora Temos esse atributo click. Eu escrevo o nome BTN Clicked dentro deste evento de clique. Mas está abaixo dos atributos. De qualquer forma, atributos ou evento. Vamos continuar. Você pode ver esse clique dentro deste código. Você pode ver isso aqui. O que diz isso? Digamos que você não tenha esse método dentro de sua pinça. Ok, qual é a sugestão? Crie essa atividade de presidiário. Ok, vamos criar esse estúdio Android criado para nós. Dentro dela, você deve escrever algum código. Ok, vamos criar uma variável. Variável, é alta, isso é uma visualização de texto. Dezenas dentro dos widgets. Crie uma visualização de texto como tipo de exibição de texto. Eu deveria sentir isso. Encontre a vista, eu encontro a ID da vista. Devo dizer qual objeto pertence a essa variável R. R significa ID de recursos. Como você pode ver, eu posso ver todos eles com texto alto. Ok, agora queremos fazer algo alto. O que devemos querer fazer? Queremos definir o que você quer escrever. Finalmente, diga oi pela primeira vez, nós dizemos oi. Como você pode ver, você diz essa linha amarela. É porque podemos fazer isso de muitas maneiras diferentes e melhores, mas só queremos clicar na função para que possamos escrever nossa primeira. Ok, vamos executá-lo. Ok. Nosso aplicativo funciona cerca um, 15 segundos ou um minuto depois. Você pode ver que temos esse botão e, se pressionarmos, finalmente dizemos oi. É o suficiente por enquanto, porque, como você pode ver, temos muitas outras coisas sobre as quais conversar. Por exemplo, não sabemos como criar variáveis. Não sabemos o que é função, como encontramos essas coisas dentro do recurso, por que esse aviso está aqui, o que devemos fazer e muitas outras coisas. Na próxima lição, devemos começar com o básico. Abordamos o básico, um por um, e depois voltamos para programas mais complexos 7. Dia 2: Questionário do dia 1 respondido: Ok, vamos responder nosso questionário de quinta-feira. Pergunta número um. Qual é a melhor ordem de instalação para as seguintes necessidades para atuar no desenvolvimento no Android Studio Temos CK, Android Studio e JDK. Como no vídeo anterior, no primeiro dia, temos primeiro nosso JDK, depois o Android Studio e depois o SDK Muito fácil. Pergunta número dois: por que usamos emuladores, é claro, para visualizar nossos aplicativos antes instalá-los em dispositivos reais Essa pergunta número três, quando acontece o evento, tenho certeza que você pode dizer isso facilmente. Quando clicamos em um objeto em uma página, o evento de clique é chamado. Por exemplo, se clicarmos em um botão, como você viu no dia anterior, usamos esse evento de clique para alterar um texto. Podemos usá-lo de várias maneiras diferentes, mas é claro que você pode primeiro definir o que deseja fazer. 8. Dia 2: Crie o aplicativo (Projeto vazio): Bem-vindo à calculadora simples do projeto do segundo dia. O que isso vai fazer? Nossa calculadora pega dois números, faz quatro operações aritméticas principais, mais, menos, divide, multiplica faz quatro operações aritméticas principais, mais, menos, divide, multiplica e mostra o resultado. Se eu inserir um número aqui, um número aqui e pressionar qualquer um desses quatro botões, o resultado será aqui, Leste. É isso que você vai aprender? Você aprende que pelo menos essas quatro coisas definem variáveis, diferentes tipos de dados em Cutlin, operadores e condições Como estamos em um projeto, estamos criando esse projeto, você aprenderá muitas outras coisas que surgirão da melhor maneira possível para lhe ensinar muitos pequenos detalhes que podem ser muito úteis. Espero que você goste. Ok, vamos criar nosso primeiro projeto. Quando você abre o Android Studio, ele pode abrir o projeto mais recente que você estava trabalhando. Se você não vê essa janela, você pode simplesmente abrir este arquivo de menu Los Project. Agora você pode ver essa janela nessa janela. Você pode pressionar esse botão. Novo projeto. Ok, esta é a sua janela de modelo, a janela que você pode escolher, qualquer modelo. De qualquer forma, à esquerda você tem a televisão. Mas escolhemos telefone e tablet. Você tem alguns modelos aqui. Cada um desses modelos tem algo para você. Por exemplo, o modelo tem uma parte traseira, esse modelo tem um botão Voltar. E esse botão no primeiro, temos isso porque queremos fazer uma coisa diferente. Começamos sem nenhuma atividade. Criamos um projeto com esse único projeto e agora é hora de não realizar nenhuma atividade. Vamos ver o que temos aqui. Pressionamos o botão Avançar ou o botão duplo. Ok, devemos escrever o nome. Ok, eu escrevo esse nome para minha calculadora. Minha calculadora, este é o nome do meu projeto, nome do pacote. Eu escrevo isso honestamente, o Android Studio escreve para mim porque eu escrevo essas coisas antes E como meu nome é minha calculadora e o Studio a escreve, eu não a mudei. Como eu disse, é uma coisa única. Esse nome do pacote, como seu número de telefone ou código postal. Eu disse isso também no primeiro dia, salve a localização. Meu projeto foi salvo, como você vê, nomeie minha calculadora. Já que salvei meu projeto anterior em projetos, o Android Studio. Sim, quero salvá-lo na minha calculadora no projeto. Como eu disse, meu último projeto lá, linguagem se apega ao Catlin, porque o Google Android Studio sugere que Catlin é melhor Eu escolhi Catlin para meu projeto agora, mínimo K. Meu mínimo K é Android sete Não consigo instalar meu aplicativo no dispositivo se ele tiver, por exemplo, o Android six. Todo o Android depois sete e o Android sete são compatíveis com meu aplicativo. E são cerca de 96,3% de dispositivos. É um bom número. De qualquer forma, linguagem de configuração. Já que recomendo isso, que seja assim e termine. Como acabei de criar meu projeto, esperamos de alguns segundos a alguns minutos até a construção gradual do meu projeto. Ok, minha fatura do aplicativo foi concluída com sucesso em 1 minuto e 5 segundos. Como eu disse, pode ser diferente com base na sua Internet e na potência do computador, como RAM ou CPU. Ok, vamos continuar quando seu projeto estiver pronto, vamos ver, o que temos? Temos duas partes principais no projeto. Esse projeto que podemos fechar e abrir, e essa janela principal que temos no centro. Escrevemos toda a nossa codificação neste lugar. Neste local principal, a seção de projetos que temos aqui, certifique-se de selecionar Android para melhor acesso. Você também tem essa visualização do projeto que mostra o projeto da forma como ele é armazenado no disco rígido. De qualquer forma, cobrimos todas essas coisas no primeiro dia, ok. Na Apple, esses três pesquisadores se manifestam, Catlin mais Giova Neste Catlin plastiovo, temos esse grito, já que não usamos nenhum modelo, ele também está vazio já que não usamos nenhum modelo, ele também está Nós temos esses recursos. Voltaremos aqui mais tarde. Abordamos algumas dessas coisas no primeiro dia, queremos adicionar uma nova atividade. Continuamos com isso no próximo vídeo. 9. Dia 2: adicione uma atividade no Android: Ok, bem-vindo de volta. Adicionando atividade ao nosso projeto. Se você não está vendo isso dessa forma, você pode escolher a opção três. Aparência: o medial compacto empacota isso. Você não vê isso? Mas se você verificar, você vê assim. Ok, vamos seguir em frente. Clique com o botão direito aqui. Se você tiver algo assim, clique com o botão direito do mouse no último. Nova atividade, clique em Atividade em branco. Ok, você tem isso. Agora estamos adicionando uma atividade. Vamos ver, o que temos? Como devemos chamá-lo? Vamos chamá-la de atividade principal porque é nossa primeira atividade e sua atividade principal. Na verdade, cada atividade tem duas partes. A parte que você digita, a camada que você vê, chamamos de layout. Por causa disso, você tem dois nomes. Na maioria das vezes você tem o mesmo nome. Você pode descobrir qual layout pertence a qual atividade, você pode encontrar um enquanto procura outro. Você vê que há uma diferença, pouco diferente na nomenclatura. Tenha cuidado, você não pode escrever nenhum espaço aqui. O nome do layout não está definido como um nome de recurso válido. Espaço não é um nome de recurso baseado em arquivo válido. Seu nome contém apenas letras minúsculas de a a Z e números de zero a nove ou sublinhado É isso, você deve nomeá-lo como deveria ser, nada mais. Por exemplo, você não pode colocar um.in aqui. Você não pode usar capital assim por causa disso. Como você pode ver, você tem Big M lá em cima, mas você tem pequenos personagens aqui embaixo. Ok. Qual é o nome do nosso pacote? nome do pacote do nosso aplicativo, é claro, qual é a nossa linguagem para codificar o Cut Você também pode clicar em Trabalho. Neste curso, usamos Cutlin, mas também temos outra coisa Você vê essa atividade de lançamento. O que é isso? Em seguida, você clica ou toca, digamos, toque na voz do Android. Em seguida, você toca em um ícone na sua voz do Android e inicia um aplicativo. Você tem uma atividade padrão. Cada aplicativo tem uma atividade padrão que você vê quando o aplicativo é aberto. Se verificarmos essa atividade do lançador, essa atividade será considerada atividade de lançamento como atividade padrão Nós verificamos isso porque é nossa atividade principal. Ok, nada mais. Vamos terminar isso e esperar. Nossa atividade será criada. Agora, temos essa atividade principal nessa atividade na linha XML que, como você pode ver, tem nossa atividade revisável Esta é a nossa principal atividade, Katie e XML. Antes que eu esqueça, vamos alterá-lo para compacto, já que eu só gosto de colocar você no disco. O que acontece se eu fechar isso e fechar isso? Como posso encontrá-los? Primeiro projeto, então, não esta visão do Android, o clesva, o nome do meu pacote, atividade principal, vazamento duplo Este é K tem meu código. Então, sob esse recurso, eu tenho meu layout sobre isso. Eu tenho minha atividade principal em XML. Está bem? Eu tenho esse manifesto aqui. Dentro disso, eu tenho esse manifesto XML do Android. A maneira mais fácil de explicar sobre esse manifesto do Android é que M. Essa é a nossa base. É nosso arquivo base, o arquivo mais importante. Esse arquivo XML contém metadados importantes sobre seu aplicativo Android Esses dados incluem, por exemplo, nome do pacote, nomes das atividades, qual é sua atividade principal? E muitas outras coisas. Resumindo, é o arquivo mais importante do seu projeto que tudo começa aqui. Temos muitas coisas a fazer com isso no futuro. Por muitas razões, voltaremos a isso. Mas, por enquanto, deixe-me explicar alguns deles. Qual é o nosso aplicativo? Este é o nosso aplicativo. Como chamamos isso? Qual é o nome do meu aplicativo ou qual é a minha equipe? Mas não estamos aqui para essas coisas. Estamos aqui para essa atividade. Cada atividade que você adiciona ao seu aplicativo tem uma entrada aqui. Toda a atividade aqui, por exemplo, criamos uma atividade, nós a temos aqui. Atividade à qual adicionamos sua atividade principal. Nós verificamos isso em apenas um segundo. Deixe-me continuar com um exemplo. Clique com o botão direito aqui. Nova atividade, atividade vazia. Por exemplo, eu crio uma atividade chamada logging finish. Ok, eu tenho esse registro. Deixe-me voltar a isso. Como você pode ver, você tem esse registro de nomes. Esse é todo o código inserido em nosso Android Manifest ML, as três linhas, o nome e o exportado Antes que eu esqueça, você deve sempre iniciar sua atividade. É a regra. Não é forçado pelo Android Studio, mas é a regra. Nova atividade e atividade vazia aqui. Sempre comece com letra maiúscula. É importante, pois você pode ver M maiúsculo, M maiúsculo aqui. Como você pode ver, a capital pode ter muitas partes. Por exemplo, principal com capital e capital de atividade também cada palavra com maiúscula. Outra coisa que você pode ver é o login Como temos um login para nosso código, temos essa atividade com nossa parte visível Nosso layout está aqui. Nomeação de atividades e rotas de nomenclatura de layout. Vamos ver o que aprendemos até agora. Nome da atividade, começamos com letras maiúsculas. Se você tiver mais de uma palavra no nome da atividade, é melhor começar cada palavra com letra maiúscula para facilitar a leitura Por exemplo, atividade de registro de atividades, Você pode ver a maiúscula A maiúscula? A palavra Atividade no final do nome da atividade é opcional, mas com nomes de layout recomendados, você só pode usar letras minúsculas de A a Z e números de zero a nove. E sublinhado nos nomes do layout, espaço em branco não é permitido porque não está dentro e em todos os outros caracteres O nome do arquivo de layout deve ser o mesmo da atividade relacionada. Por exemplo, atividade principal, você vê a relação, você pode ver mais dessas coisas no futuro. Explicamos todos eles várias vezes até termos certeza de que você os entendeu. Mas esta é uma explicação muito breve do que faremos no futuro. Ok, vamos voltar em muitos. Primeiro, como você pode ver aqui, temos apenas essas três linhas. Por quê? Porque não temos o lançamento. Nossa nova atividade não é nossa atividade principal. E se quisermos mudar nossa atividade de lançamento? Por exemplo, quero que essa atividade de registro seja a primeira atividade que todos vejam. Primeiro, fechamos assim. E entre essa parte, como você pode ver, essa intenção deve estar entre essa e essa parte. Nós o cortamos. O controle X, e exatamente aqui, pagamos o controle aqui. O que nós temos? Temos essa linha vermelha sublinhada. Por quê? Porque uma atividade de lançamento deve ser exportada a partir do Android 12, o que também a disponibiliza para outros aplicativos Se fizermos isso, o erro desaparecerá e sua atividade de login estará acessível com outros aplicativos. De qualquer forma, espero poder explicar isso. Bem, vamos mudar isso de volta para aqui. Além disso, não precisamos de nossa atividade de registro, vamos apenas removê-la. Excluímos também arquivos, esse login, podemos excluí-lo daqui ou simplesmente pressionar o botão de segurança de exclusão, excluir a pesquisa. Ok, claro. Ok, exclua de qualquer maneira, porque não o usamos qualquer maneira em nenhum lugar, esse login de atividade. E também pressione Excluir e, claro, excluir excluído. Continuaremos com isso em nosso próximo vídeo. 10. Dia 2: Crie layout - Parte 1 (Layouts de restrição - Editar texto): Crie a primeira parte do layout. Ok, vamos continuar de onde acabamos de sair. Acabei de verificar meus vídeos e acho que meus fundos podem estar um pouco pequenos. Eu deveria torná-los maiores por isso, eu escolho. Você pode arquivar essa configuração? Como você vê, a chave curta é o controle e, ao mesmo tempo, procuro o fundo. Aqui eu posso ver primeiro que tenho essa aparência. Eu faço com que 16 se inscrevam. Isso torna todo o aplicativo um pouco maior. E o editor da minha co-parte, eu também tenho o fundo aqui. Acho que talvez, deixe-me ver se dou 15. Não é rei, como está? É muito bom. É melhor. Eu acho que é o suficiente. Está bem? Ok, espero que seja melhor para você. E você pode ler isso facilmente. Ok, vamos continuar nossa codificação e projeto. OK. Primeiro, feche isso e deixe-me ver se executamos o aplicativo. Devemos ver nossa atividade na linha principal de ML, primeiro nosso emulador Temos esse emulador que selecionamos. Ok, agora eu deveria pressionar isso. Corra e espere. Ok, meu aplicativo é executado e meu aplicativo é executado. Você pode ver que este é o nosso aplicativo. Evite e dê um nome à minha calculadora. Este é o nosso aplicativo. Está bem? Vamos parar com isso e minimizar isso. Agora, se eu fechar isso, primeiro quero ver o que está dentro da minha atividade principal. Definir exibição de conteúdo, o que isso significa? Isso significa definir o conteúdo da atividade de um recurso de layout para mostrar qual layout é para esse código, para minha atividade principal do Resource. Do Layout For. Como você pode ver aqui, atividade subjacente principal é minha atividade para este código. Se eu quiser acessar esse arquivo, basta pressionar Control. Estou no meu teclado e clico. Você pode ver que a cor é diferente, parece um link. Agora clique e agora eu tenho meu XML que eu vi aqui. Se eu fechá-lo novamente, pressione control. Você também pode fazer isso. Clique em Eu vejo a atividade alvo. Resumindo, quando sua aula de atividade estiver aberta, pressione control, clique no nome e acesse o XML. Vamos perder. E deixe-me ter apenas esse layout e dividir para que eu possa ver o código e a visualização ao mesmo tempo. No padrão, temos essa camada em nosso layout, esse layout de restrição que temos, esse layout de restrição de nome de camada Começa aqui e termina aqui. Você pode ver se deseja finalizar, basta adicionar isso no final. É o mesmo, mas isso é um extra que você adiciona se quiser acabar com o chamado tipo de fechamento. Ao adicionar isso, você não pode fechá-lo. Layout de layout em aplicativos Android. O Layout Manager é usado para definir a posição das visualizações secundárias na interface do usuário. Você pode exibir seu conteúdo de forma eficaz usando a combinação certa de layouts Nós lhe ensinaremos tudo isso O layout do Android é usado para definir a interface do usuário que contém os controles ou pontes da interface que aparecerão na tela do aplicativo Todos os elementos em um layout são criados usando os objetos view e view group. Cada aplicativo é uma combinação de visualização e grupo de visualizações. Cada visualização do aplicativo e grupo visualizações A View é definida como a interface do usuário usada para criar componentes interativos da interface do usuário. Ed, visualização de imagem, visualização de texto, botão de rádio e tudo mais. É responsável pelo tratamento de eventos e geralmente é chamado de widgets Na maioria das vezes, os chamamos de widgets. Um grupo de visualizações atua como uma classe base para layouts. Layouts, parâmetros, furos, outras visualizações ou grupos de visualizações definem propriedades do layout, geralmente chamadas de layouts Não se preocupe se você ficou confuso. Ensinamos a eles da melhor maneira possível durante o curso sobre os tipos de layout do Android Studio, layout linear, layout relativo e todos os outros. O layout de restrição é um grupo de visualizações. É usado para especificar a posição das restrições de layout para cada escolha Visualização em relação à outra visão presente. Um layout restrito é semelhante ao layout relativo, mais potência, ok? OK. Ok, deixe-me mostrar o que é layout de restrição layout de restrição pode funcionar como uma camada principal para adicionar seus elementos Para objetos em layout restrito, a posição de cada elemento é determinada em relação aos outros elementos Deixe-me explicar esse primeiro objeto conectado ao canto superior direito esquerdo. Segundo objeto conectado ao canto superior direito, esquerdo. O que aconteceria se eu movesse esse primeiro objeto um pouco para baixo? Por exemplo, eu o trago até aqui. O que aconteceu com esse objeto será tanto quanto esse objeto caído. Por quê? Porque esses dois objetos são relativos. Isso não é relativo a isso, mas é relativo a isso. Você entende o que aconteceu? O que aconteceu com isso? Desça ou suba. O segundo objeto será seguir a seta conectada ao objeto pai ou relativo. O que quer que tenha acontecido, elas se afetam como as flechas. Eu os obrigo a fazer isso. OK. Então, o que aconteceu com essa de baixo? Se eu mover este ou este, você não consegue adivinhar nada? Por que não há flechas entre eles? Isso não é relativo a eles. Durante o curso, expliquei melhor sobre Andrew, o estúdio. Mas eu insisto que você se concentre nessas flechas Como eles são afetados um pelo outro? Eu explico isso mais uma vez rapidamente. Esse primeiro objeto se move e o segundo objeto também se move para baixo ou para cima. Porque essa flecha e a inferior não foram afetadas de forma alguma. Ok, vamos continuar. Precisamos de duas caixas que retirem números para nossa calculadora a partir do texto adicionado pelo usuário. Um elemento da interface do usuário para inserir e modificar texto. O usuário pode inserir qualquer valor nessa caixa de texto, mas o tipo de texto pode ser restrito usando texto. Edite, atributos, atributos de TI, você tem todos esses atributos e muito mais. Esses são os mais importantes. Nós os abordamos durante o curso várias vezes. Podemos ter certeza de que você entende cada um deles e sabe como usar. Ok, vamos adicionar edição. O que é editado é simples: o usuário pode inserir qualquer texto nele, se eu quiser fornecer ao texto de edição, essas duas propriedades, como você pode ver, o texto de edição. Primeiro, pense nessas duas porque essas duas são as propriedades mais importantes na edição de texto. Eu deveria clicar aqui, eu quero que Andre me diga quais opções eu tenho, controle e espaço Ele abre as opções, eu posso escolher entre elas, é chamado de inteligência. De qualquer forma, eu escolho conteúdo de rap. Na maioria das vezes, você escolhe conteúdo de rap ou combina com pais. Algumas vezes você escolhe outras coisas. Mas, na maioria das vezes, selecionamos essas duas patentes iguais. A altura ou largura do objeto será igual à altura ou largura de sua patente. Você pode ver como está a largura no conteúdo deste exemplo, a altura ou a largura do objeto. Quero dizer, qualquer objeto, qualquer objeto será igual ao seu conteúdo. Quanto mais conteúdo, mais altura ou largura e por quê. Você pode ver o exemplo de largura. É muito simples. Está bem? Embrulhe o conteúdo, ok? Embrulhe conteúdo para isso também. No final, essa barra, porque eu quero fechar esse texto de edição como eu digo Quando eu clico, por exemplo, aqui e pressiono Shift e este botão, ele me mostra as opções que eu tenho. Mas se eu clicar em qualquer outro lugar e fechar isso, se eu clicar lá novamente, não vejo isso por isso. Como eu disse, eu só deveria pressionar o espaço de controle. Essa janela de ajuda se abre novamente e me ajuda a escolher o que eu quero. Por exemplo, adicionamos texto de edição. Se eu quiser adicionar um botão logo abaixo do meu teclado, botão para baixo, entre adicionar um botão Ok, eu excluo. Excluir. Vamos continuar com isso no próximo vídeo. 11. Dia 2: Crie o layout - Parte 2: Crie a segunda parte do layout. Vamos continuar. Não se esqueça de fechar sua etiqueta. Você cria texto de edição. Você deve fechá-lo, mesmo que crie esse layout. Você deve fechá-lo assim. Perder. Se você não perder, você cometeu um erro. Você perde. Não é uma opção. Como eu disse para dizer, basta pressionar ok, essa janela de ajuda aparece. O que eu quero? E texto e escrito, digamos que esse texto seja igual a algum valor. Ou da maneira mais fácil. Deixe-me deletar isso. A maneira mais fácil é a certa. O Android Studio ajuda você a tudo o que contém, eu quero esse Android. Eu escolho este facilmente. E meu valor, você vê. Deixe-me esconder isso e ampliar. Eu posso ver o que eu tenho? Um pouco maior. Ok. Agora, se eu mudar isso para corresponder ao pai, o que eu tenho? É que combina com seu pai. Esse é o nosso layout. É preciso tudo. Mas deixe-me mudar isso para conteúdo de rock. Novamente, conteúdo de rock, o quanto o conteúdo, quero dizer, esse texto precisa para ser exibido. Se eu adicionar algum texto no final, por exemplo, alguns deles podem ver que estão ficando maiores. E alguns números talvez você possa ver as mudanças. Se eu tiver o pai compatível, não há diferença. Então eu tenho esse texto ou apenas o valor, nenhuma diferença vem dos pais. Espero poder explicar isso. Bem, deixe-me ver. O que temos se alterarmos a altura para coincidir com o pai? Pause o vídeo e adivinhe, depois reproduza o vídeo e eu vou te mostrar Ok, deixe-me ver se alterar isso para corresponder ao pai, toda a altura pertence a esse texto de edição de seu pai. Tenha cuidado, se o pai ocupar apenas metade da página, a altura do texto de edição estará apenas até o meio da página A erva daninha e a altura vêm dos pais, já que temos o layout todo menos creme, de cima para baixo. Portanto, temos nossos pais do tamanho de nossos pais. Ok, vamos trocá-lo de volta. Rastreie conteúdo para nossa calculadora. Precisamos de algo assim. E só para você saber, maioria dos objetos tem essa umidade e altura, quase todos eles. Deixe-me dizer a maioria deles. Ok, vamos continuar. Mas temos esse erro vermelho, esse vermelho subjacente sob esse texto de edição. E também temos esse erro vermelho. Diz que você tem um erro, você deve corrigi-lo. Como podemos consertar isso? O que é esse erro? Esse erro disse que você adicionou sua edição. Bom trabalho. Mas. Você não especifica onde devemos mostrar isso? O que isso significa? Isso significa que você deve dizer que, de pelo menos um ângulo , está conectado a outra coisa. Assim, o Android, quando você executa seu aplicativo, pode decidir qual lado do seu objeto está conectado a qual lado de qual objeto pode resolvê-lo de alguma forma. Deixe-me te mostrar. Então você escreve de cima para cima e tem a restrição de layout A de cima para cima Eu o escolhi e disse que a parte superior do meu texto de edição deveria estar conectada à parte principal. Podemos especificar um ID se tivermos outro objeto aqui. Mas não, eu quero dizer patente. O que é pai? Meu layout de restrição. Meu layout. Ok, se eu fizer isso, você pode ver esse azul. A parte superior do meu texto de edição ficou azul. Ele está conectado à parte superior de seu pai. Como você pode ver, não é Android, é aplicativo. Se eu fizer esse design interno aqui, posso clicar nesse círculo movê-lo um pouco para a esquerda e deixá-lo. No Andrew Studio, basta escrever essa restrição de layout. início ao início do pai, podemos digitá-lo aqui ou podemos fazer isso aqui. No modo de design, eu faço. Assim, você pode entender qual é a diferença. Antes que eu esqueça, você pode ver que tem todo o texto aqui. Você tem os atributos aqui. Veja o layout que combina com pai e layout, eu embrulhe o conteúdo. Você tem todas as outras coisas, até mesmo texto com esse valor, se eu disser valor, por exemplo, esse número no final. E aí você pode ver esse texto alterado para isso que eu escrevo lá e ele é adicionado aqui. O que for mais fácil para você, você pode fazer a partir daí Espero explicar isso com bastante facilidade. Não fazemos com todas essas coisas por enquanto, mas você sabe que esses são atributos capazes. Além disso, você tem os atributos. Todos esses atributos contêm todos os atributos. Você pode ver que se eu pressionar aqui, todos esses atributos serão abertos e todos eles estarão aqui. Mas o que é utilizável, os atributos que mais usamos, são esses poucos atributos Na maioria das vezes, usamos e trabalhamos com eles. Mas, às vezes, em todos os atributos, temos outra coisa outra coisa com a qual devemos trabalhar em um determinado momento. Ok, deixe-me minimizar. O que temos aqui? À direita, eu tenho o círculo. Se eu arrastá-lo para a direita, você pode ver que tenho uma restrição de layout até o final da patente Só para você ver, o que chamamos de fundo? Eu arrasto a parte inferior até a parte inferior da patente. Assim, você pode ver a restrição de layout de baixo para baixo da patente Porque nos conectamos de cima a baixo com os pais. Nosso texto de edição veio para o meio. Se eu quiser excluir, por exemplo, este de baixo, posso removê-lo daqui, Pt, o de baixo desapareceu. Como isso é muito útil, deixe-me fazer outra coisa com isso que aprendemos até agora. Deixe-me conectá-lo novamente. Dessa vez. Remova o topo desta linha. Retire-o, ele vai cair. Deixe-me reconectá-lo, no meio, deixe-me ver. Embrulhe o conteúdo. A largura do texto de edição é limitada pelo valor do texto. Se o texto ficar mais longo, a largura aumentará e, em seguida, corresponderá novamente à patente. Você pode ver que é muito fácil. Você só deveria trabalhar com isso. Quanto mais você trabalha com isso, mais você aprende. Resumindo, o que essas quatro coisas fazem? Você pode vê-los dentro dos atributos. Aqui, essas coisas mostram onde seu objeto deveria estar dentro de sua visão. L XML ou sua visualização, ou sua camada, você quiser chamá-la no dispositivo Android, seu aplicativo se parecer, como seu objeto deve estar lado a lado? Porque trabalhamos muito com essas coisas. Eu tento explicá-los da melhor maneira possível. Vamos continuar com isso no próximo vídeo. 12. Dia 2: Crie o layout - Parte 3 (TextView): Crie a terceira parte do layout. Ok, vamos voltar. Nós os cobrimos e não precisamos desse também. Removemos esse texto porque é nossa primeira entrada em nossa calculadora. Agora eu tenho três avisos acima. Como você pode ver. Um deles é o autopi Ok, vamos autografar, vá para Feel Hints Sinta dicas, por exemplo, aqui Ok, o que é esse preenchimento automático? É para algo que o Android pode preencher para você. Por exemplo, nome de usuário , e-mail ou outras coisas. Não é necessário que a calculadora edite o texto, mas nós o preenchemos mesmo assim porque quero mostrar como reduzir os avisos Agora, deixe-me ver isso de novo. Preciso do tipo de entrada e da etiqueta acessível. Agora temos duas maneiras à nossa frente. Primeiro, podemos ver o aviso aqui em cima, por exemplo, nesta etiqueta. Ou podemos continuar com esse texto de edição. Você pode ver esse sublinhado amarelo. Você pode ver esse rótulo ausente para a dica, dica ou rótulo de um deles Você precisa de um desses. Ok, primeiro deixe-me escrever essa dica, essa dica. Coloque seu número aqui. Não, seu número aqui, é melhor. Agora é uma dica. Você orienta o usuário sobre o que ele deve fazer? Ele deveria inserir o número aqui, é claro. Digite seu primeiro número aqui. Vamos executar o aplicativo pressionando o botão e tudo bem, nosso aplicativo agora é executado em nosso dispositivo virtual. Como você pode ver, ele me disse: Digite seu primeiro número aqui. Essa é a nossa dica. Quando você clica nele e digita algo, ele desaparece. Por quê? Porque é só uma dica. Se eu removê-lo, ainda tenho minha dica. Mas se eu escrever alguma coisa, a dica desaparece. Meu número ou meu texto serão substituídos por isso. Ok, vamos parar o aplicativo e, claro, minimizar isso. Ok, vamos continuar. Ok, agora você está familiarizado com essa dica. Deixe-me adicionar o rótulo primeiro, eu excluo isso, depois adiciono a visualização de texto. Ok, visualização de texto Evi jet, que exibe algum texto na tela com base no layout, tamanho, cor, etc Você pode escrever qualquer texto nesse elemento. O que é visualização de texto? Essa é a visualização de texto. De qualquer forma, atributos para essa visualização de texto, temos alguns atributos como qual é o uso? Como você pode ver durante o curso, abordamos essas muitas vezes, por mais que possamos ter certeza de que você as entende bem porque é a coisa mais importante, você deve entendê-las bem. Ok, vamos ver o texto. Essa é a visualização de texto. Ok, eu tenho minha visualização de texto. E, claro, conteúdo de rack. Conteúdo do rack. Agora, o que mais eu preciso? Texto. Está bem? Eu escrevo o primeiro número, é claro que preciso fechar e devo conectá-lo à parte superior e à esquerda de seu pai. Então, eu posso conectar esses círculos à parte superior ou à esquerda, ou simplesmente escrever o código dentro disso. Eu me conecto à parte superior e à esquerda a patente, patente e a etiqueta. Para? Para etiqueta para quê? Alguma identificação. Mas meu texto de edição não tem um ID, então deixe-me adicionar um ID ao meu texto de edição. Em vez de digitar aqui, use o ID do atributo. Por exemplo, x. Agora eu tenho esse valor xt. Agora eu posso dar exatamente isso a essa forma de trabalho. Agora, antes que eu esqueça, eu adiciono a visualização de texto. Essa visualização de texto serve para mostrar qualquer texto, não texto editável pelo usuário O usuário não pode editar esse texto clicando nele, mas editar texto é para entrada, essa visualização de texto não é para entrada. O que temos a seguir? Temos outro tipo de entrada de aviso. Ok, vamos corrigir isso também. Tipo de entrada. Qual é o nosso tipo de entrada em uma calculadora, é claro, número, o usuário só pode inserir o número. Agora, como você pode ver, não temos essa linha amarela sublinhada para os avisos porque os corrigimos Claro que você tem esse aviso porque deve colocá-lo dentro do arquivo de valores e outras coisas. Falaremos com eles nas aulas futuras, mas não se preocupe com eles agora, vamos continuar. Agora, deixe-me executar isso de novo. Nós temos o e quando eu escrevo números, eu tenho esse primeiro número no topo, ok? Pare e minimize. Como podemos ver, eles estavam muito próximos um do outro, é o problema, ok? Eu adiciono essa primeira entrada de ID para minha visualização de texto. Eu altero o ID de edição do texto com dois valores de EDT. erro é meu porque é editar texto, eu deveria começar com o nome EDT. Como são textos escritos por lei entre programadores, eu deveria escrever a primeira entrada T agora, em vez de conectá-la de cima para baixo à patente Eu quero mudar isso. Espaço de controle, de cima para baixo de cima para baixo, de baixo para baixo dos chutes A primeira entrada, como você pode ver na exibição, essa parte está conectada à parte inferior dessa visualização de texto, portanto, está conectada à parte inferior da visualização de texto Eu tenho esse erro y porque escrevo essa coisa de forma mais isolada Ok, deixe-me ver. Eu tenho outro erro. O que isso faz aqui? Eu tenho um tamanho de alvo de toque muito pequeno, é muito pequeno, ele precisa de um pouco mais de altura. Ok, deixe-me corrigir isso também. Agora eu coloco a altura média em 48 DP, então meu texto de edição não pode ser menor, a altura do meu texto de edição não pode ser menor que 48 DP O resultado é que o usuário pode tocá-lo facilmente. Se for menor que o ATP, é difícil para nós, alguns usuários, tocá-lo e selecionar essa edição de qualquer maneira Como você pode ver, também corrigimos esse erro. Ok, deixe-me executá-lo rapidamente novamente para ver o que acontece. Como podemos ver, eu tenho esse primeiro número, posso escrever um número. Isso é dizer o primeiro número. Esse é o nosso primeiro número. Ao contrário da nossa dica, ela não vai a lugar nenhum. Quando escrevemos números e qualquer outra coisa, se escrevemos qualquer outra coisa, ela não vai a lugar nenhum Você pode entender. Agora, para que temos esse rótulo? Dissemos isso quando escrevemos para que serve? É para esse texto de edição. Por causa disso, dissemos que é um rótulo para essa ideia. Qual é esse ID de ideia do texto de edição? Espero poder explicar isso. Bem, antes que eu esqueça, você não precisa executá-lo toda vez que eu executo muito, porque eu quero te mostrar o que acontece. Ok, não temos o segundo número. Podemos usar isso para colocar os objetos na tela, ou eu posso te mostrar outra coisa. Clique aqui e, ao pressionar o botão esquerdo, você pode usar a roda central do mouse para parafusá-lo assim. OK. Agora, solte-o. Pressione o controle C. Você pode copiar o texto agora? Controle-me o que acabou de acontecer. Você cria uma cópia desse texto e dessas edições, mas temos um pequeno problema O que temos nesses IDs, não podemos ter um ID duplicado nessa visualização Devemos mudar esses IDs. O que eu faço para alterar essa ID? Eu mudo para a 62ª entrada do texto. Eu mudei para a segunda etiqueta numérica. Eu o alterei para o valor T segundo porque alterei esse ID de edição de texto para editar o segundo valor. Já definimos a altura média , então não precisamos fazer isso novamente porque a copiamos. E na parte inferior da 62ª entrada é tão fácil quanto isso Ok, olhe para o lado direito. Você pode ver que eles estão um em cima do outro. É nosso problema. Temos um problema aqui. Deixe-me ampliar. E como você pode ver lá em cima um do outro, o que podemos fazer? Primeiro, deixe-me alterar esse valor de edição de texto. Eu mudei para o primeiro valor, mudei para o primeiro valor. Agora, devo alterar esse rótulo para o primeiro valor, pois todos os nossos IDs estão válidos por enquanto. Agora vamos mudar a posição deles. Como posso fazer isso? Quero que essa visualização de texto esteja na parte inferior desse texto de edição. Eu o altero para o topo desta visualização de texto conectada a eles. É o fundo desta. Você pode ver isso se conectando à parte inferior desta. Está bem? E essa edição usa a segunda entrada, parte inferior do que temos aqui agora? Essa visualização de texto e depois essa edição, essa visualização de texto e esse texto de edição. Vamos executá-lo novamente. Eu executo meu aplicativo novamente. Como você pode ver, eu tenho meu primeiro número. Este é meu primeiro número e meu segundo número. Esse é meu segundo número. Ok, Don. 13. Dia 2: Noções básicas de design de materiais no Android: Design de materiais no Android. Eu executo o aplicativo, mas, como você vê, ainda tenho dois erros aqui. No entanto, meus aplicativos podem ser executados da mesma forma que alguns erros, apenas na parte de design ou nos arquivos XML relacionados ao layout, e não podem impedir a execução do seu aplicativo. Isso significa que eles não impedem você. Em vez de corrigir esses erros, quero deixar meu aplicativo mais bonito. Vamos ver como eu quero fazer isso, ok? O Material Design, um guia abrangente para design visual de movimento e interação entre plataformas e dispositivos, cria produtos bonitos e utilizáveis O uso de componentes de material oferece mais controle sobre a aparência do seu aplicativo para o usuário. Torna a interface do aplicativo interface do usuário mais bonita e interativa. Economiza seu tempo. Muitos recursos de que você precisa já foram implementados para usar componentes de material em seu. Certifique-se de ter essa linha em seu arquivo de gradial. Lembre-se de que a versão 1.11 0.0 pode variar dependendo da hora em que você assiste a este vídeo O que isso significa? Isso significa que a versão 1.11 0.0 é a versão mínima que você usa no futuro, você chegou a este ponto e esta linha, versão mínima que você usa, é essa. Por quê? Porque você verá esse vídeo no futuro. E a versão que eu uso no momento é essa, sua versão é igual ou superior. A versão mínima é essa. E, claro, minimize, ok? Deixe-me movê-lo um pouco aqui. E amplie com esta mão aqui, está bem? Então, o que devemos adicionar aqui? Margem. Está bem? Uma margem. Quanta margem? Por exemplo, dez DP. Dez DP, ou copie isso. Copie exatamente essa linha para a outra. Ok, vamos fazer isso de novo. Então, meu aplicativo agora, como você pode ver, eu tenho esse espaço ao redor dele. Podemos ter mais espaço. Deixe-me te mostrar. Ok, vamos adicionar um pouco mais, por exemplo, 30. 30 também. Deixe-me ver o que aconteceu agora. Você pode ver que meu aplicativo agora tem mais espaço entre esses dois. Com essa margem no espaço, você pode fazer outro número, por exemplo, 20 ou 40. Acho que é opcional para começar, é uma boa margem ou espaço externo usado para fazer uma distância entre os objetos na página. Para tornar sua interface de usuário mais bonita e fácil de usar, você pode definir a margem para todos os lados e definir a margem ou cada lado separadamente. Por exemplo, se você quiser margem para dois lados e não para os outros dois lados, você pode defini-la somente para dois lados. De qualquer forma, vamos ver o exemplo para todos os lados com a mesma quantidade. Cada um desses quatro é para um lado, para a direita, para a esquerda, para cima e para baixo. Por exemplo, você só pode ter quatro partes superiores e você não tem, e então você não tem nenhuma margem para os outros três lados. OK. Ao removermos essas visualizações de texto, devemos mostrar algo para nos ajudar. Nós adicionamos uma dica, eu adiciono essa dica. Primeiro número. Primeiro número. Eu copio isso no segundo número. Ok, acabei de copiar isso agora. Mude o texto. Ok, segundo número agora, como você pode ver à direita. Primeiro número. Segundo número. OK. Mais uma coisa antes eu esqueça o que há de diferente entre o texto e aquela dica. Eu mudei isso para texto e ainda tenho a dica do primeiro número Deixe-me correr e te mostrar. Ok, como você pode ver, escreva para mim o primeiro número. E se eu escrever 123, a dica desaparecerá quando eu a remover A dica volta. Quando escrevo algo em segundo número, o texto ainda está aqui porque eu escrevo esse texto. Se eu remover, posso remover alguns deles, mas não consigo remover o primeiro número. Se eu digitar alguma coisa, a dica desaparecerá. Mas não, o texto é o valor do texto adicionado. Ok, por enquanto, eu mudei para uma dica. Novamente, eu mudo isso para uma dica. Ok, vamos executar o aplicativo e se eu digitar alguma coisa, nossa dica desaparecerá O que acontece se eu tiver mais de duas caixas como essa? Os mais de dois editam texto, por exemplo cinco, dez editam. Por exemplo, para me registrar, tenho nome , sobrenome, telefone, e-mail e muitas outras coisas. O que aconteceria se eu quisesse manter as dicas e o usuário também pudesse digitar texto, layout de entrada de texto, um componente de material, quebrar e editar texto, ou entrada de texto, editar texto É melhor usá-lo com entrada de texto e editar texto. Você pode adicionar estilo a ele com um atributo de estilo. layout de entrada de texto tem alguns atributos, a maioria deles são esses. Por exemplo, com a dica, você pode exibir a dica como rótulo e alguns outros atributos úteis layout de entrada de texto Por exemplo, com o lent, você limita o número de caracteres que o usuário pode inserir em texto, editar texto, um componente de material para obter a entrada do usuário Isso lhe dá mais controle sobre um estilo e como ele deve ser mostrado ao usuário deve ser usado dentro de uma camada de entrada de texto, estilos diferentes para mostrá-lo de maneiras diferentes. Como você pode ver, era assim. Se você mudar o estilo, poderá criar uma aparência como essa ou qualquer outra coisa. Vou apenas dar dois exemplos. O texto de entrada de texto tem alguns atributos. Alguns dos mais importantes nesses atributos são, obviamente, o fornecimento de ID como identificador para acessar o objeto posteriormente. ID é o nome. Como chamamos esse objeto? Quase em todos os objetos, temos esse D, muitas vezes é opcional. Na maioria das vezes, colocamos um ID porque queremos fazer algo com esse objeto. De qualquer forma, o tipo de entrada, por exemplo, o tipo de dado que está sendo colocado em um número de texto e o Oder, por exemplo, se você fornecer esse número do tipo de entrada, você só poderá colocar o número dentro dele Isso significa que se o usuário tentar colocar qualquer outra coisa, essa entrada de texto, edição de texto, não aceitará e o usuário só poderá colocar um número dentro dessa entrada de texto. T. Deixe-me acrescentar. Ok, o que devo acrescentar? Ok, texto, texto, texto. Este é um ótimo material para Android, texto Textfield Ok, eu apertei lá, então eu adicionei este telefone e quero controlar o espaço, digamos, igualar a patente, e esse telefone é conteúdo de rack. Está bem? OK. Agora deixe-me fechar isso. OK. Como você pode ver, ainda temos problemas aqui porque você não pode fechá-lo assim. Portanto, você deve primeiro fechar esta parte. Então Andrew, você fecha o outro. Para algo assim, se você esqueceu, você tem esse erro Como você vê, eu ainda tenho esse erro de problema. Por quê? Porque não sabe onde deveria estar. Por favor, explique-me onde deve ser posicionado, onde deve ser colocado ou algo parecido. Onde deveria estar? Como eu quero colocá-lo, em vez do meu primeiro texto de edição, devo copiar as restrições do primeiro texto de edição Eu tenho essa posição aqui. Agora vamos descer. Eu tenho esse controle x cut. Edite o controle X, recorte, controle, cole. Novamente, você o tem aqui, controle V, você tem esse texto de edição dentro desse layout de entrada de texto, veja à direita que foi alterado. Claro que devemos ter uma identificação. Qual é a nossa identidade? Primeiro é o layout de entrada, F maiúsculo. Ok, o que você pode ver a seguir é que temos essa coisa vermelha aqui Por causa dessa coisa vermelha aqui, temos um erro. Por quê? Porque dizemos que o topo de você deve estar abaixo desse primeiro valor. Você pode dizer que temos esse primeiro valor de EDT aqui. Mas, como está dentro desse layout de entrada de texto, ele não consegue reconhecer que ele só pode acessar as camadas externas, não as internas. layout de entrada funciona como uma camada Qual é a solução? Ele não consegue encontrar isso, mas pode encontrar esse layout de entrada Primeiro, copie, controle, cole. Agora isso mudou. Deixe-me te mostrar novamente, Controle. Não sabe onde deveria estar e tem essa aparência. Como você pode ver, Controle, veja o controle certo agora. É, deveria estar embaixo disso. Está bem? Até agora, deixe-me ver o que acabou de acontecer, ok? Temos esse estilo diferente, o primeiro número 123. Segundo número 123, não aconteça. Você pode ver que um a três não acontecem. Mas aqui é mais bonito e temos a dica de minimizar isso Minimize isso e continue. Eu poderia fazer uma pausa, por exemplo, minimizar as coisas que você pode ver porque não quero perder seu tempo Nós amamos esse primeiro número agora? Sim, nós temos. O que devemos fazer? Suba, selecione este controle C facilmente. Entre aqui e corte, feche-o facilmente. Oh, layout de entrada. Primeiro, é claro, altere o ID. Você não pode ter um ID Second duplicado, porque eu quero colocar o segundo número abaixo do primeiro número Eu deveria fazer isso, copiar e colar aqui. Primeiro número, segundo número. Temos dois textos adicionados. Isso é lindo. Agora vamos executar o aplicativo novamente. Agora isso é o que eu tenho. 123 e 123. E eu tenho o meu, eu não gosto da cor do segundo número. Eu quero que isso seja mudado. Fundo branco. Ok, eu tenho branco. Ok, qual é a diferença? Você pode ver qual é a diferença. Agora vamos torná-lo mais bonito. Ok, remova isso aqui, nós damos estilo. Eu adicionei estilo e estilo, base a base. Componentes de material rígido, layout de imposição de texto. Eu tenho isso, deixe-me correr. Este é o nosso aplicativo 123123. Assim, você pode ver a diferença. Como usamos esse layout de entrada de texto, podemos usar texto diferente, não apenas texto. Como acabamos de tentar inserir isso para copiar o lado daqui e colá-lo. Toma, toma assim, como você pode ver. Controle. Nenhuma sugestão. Deve trazê-lo para nós. Não há problema em copiar isso também. E antes que eu esquecesse, não deveria ser. Texto. Deve ser uma mensagem de texto, colocar, editar, enviar um texto Como o Andrew Studio não o traz para nós, eu mesmo o digito. Ok, deixe-me executar isso. OK. O que eu tenho? Primeiro número como esse? Segundo número como esse. Oh, meu texto é assim. O que devo fazer? Acho que dou muita margem. Por exemplo, se eu der apenas 60 e dissermos , agora está melhor. Mas você pode ver que a coisa é design. Você pode aprender essas coisas. O que devo fazer para melhorá-lo? E outras coisas durante seu aprendizado, você pode entender que essas coisas aconteceram. De qualquer forma, o que devo fazer para corrigir as coisas? Deixe-me copiar tudo daqui para lá. Por exemplo, mudei meu texto de edição. Essa mudança também. , nós o temos aqui também. Eu acho que 60 e desculpe, eu quero dizer a altura seis. Eu deveria dar seis. OK. E esses são desnecessários. E essa cópia e chapéu estão aqui, ok? Ambos são iguais agora. E minimize algo assim, é melhor. Eu tento te mostrar mais maneiras de fazer uma coisa. Então você pode escolher entre eles. O que você gosta de fazer dessa maneira? Vou te mostrar muitas coisas. Deixe-me mostrar o contador também. Eu tenho esse texto de entrada e tenho esse layout. Eu adiciono aqui o contador , pois deveria ser verdade. O que é isso? Deixe-me correr novamente, 1234 Você pode ver que temos isso. O que é isso? Temos quatro números. Se eu disser 111, tenho três, um e outra coisa. É melhor usar Max também. Contador Max Len. Quantos números? Talvez porque no futuro você possa ver que tem limitação nos números. Por exemplo, não pode ter um número de 500 mais um número de 500 dígitos, você deve ter alguma limitação Talvez dez, talvez 15, talvez 20 números, mas você não pode ter números infinitos. Você deve limitar como isso funciona? Primeiro, deixe-me copiar isso. Controle C aqui. Controle, como eu disse, você vê Controle de Edição, Controle Cópia e Colagem. Eu faço isso do meu teclado, ok. Corra. Minimize o número dez , 1, 2, 3, 4, 5, 6, 7 , 8, 9 e 1 0, é o número dez. Se eu escrever mais dois, você pode ver que ficou vermelho porque o máximo é dez. OK. Antes que eu esqueça, devo mencionar que você pode ver essas coisas que adicionamos, por exemplo, contador, ativação do contador e outras coisas, talvez até estilo. Você não tem essas coisas em um texto de edição simples, você as tem dentro desse texto adicionado mais avançado. 14. Dia 2: Questionário: Ok, bem-vindo ao segundo dia. questionário. Pergunta um. O que é atividade de lançamento em um aplicativo Android? Repito, o que é atividade de lançamento em um aplicativo Android? Pergunta número dois: como os objetos na interface do usuário são posicionados? Layout de restrição. Repito, os objetos na interface do usuário são posicionados usando o layout de restrição Preste atenção. Você pode pausar o vídeo e responder ou escrever sua resposta em um pedaço de papel Qualquer coisa que você goste de qualquer maneira. Pergunta número três. Qual é a diferença entre o valor do conteúdo de correspondência, patente e empacotamento para o layout do Android com a propriedade? Eu repito. Qual é a diferença entre combinar o valor do conteúdo principal e agrupar o layout do Android com a propriedade? 15. Dia 3: Dia 2: questionário respondido: Ok, para o questionário. Vamos responder às nossas perguntas. Pergunta número um: o que é atividade de lançamento em um aplicativo Android? A primeira atividade que é executada quando você abre seu aplicativo em um dispositivo Android. Você pode considerá-la a página padrão em sua pergunta número dois, como os objetos na interface do usuário são posicionados usando o layout restrito No layout restrito, a posição de cada elemento é determinada em relação aos outros elementos na página Qual é a diferença entre combinar pai e agrupar o valor do conteúdo para layout Android com a propriedade match parent ? A largura do objeto será a mesma que w de seu pai. Você se lembra do curso que ele se encaixa no conteúdo da embalagem principal. A largura do objeto será igual ao seu conteúdo. Quanto mais conteúdo, mais, mais largura e vice-versa. Como você se lembra, também vemos isso no curso. Espero que você responda todas corretamente. Caso contrário, você sempre pode revisar o curso. Há muitas outras coisas que você pode aprender no curso. 16. Dia 3: Adicione buttons (tipos de button e materialButton): Ok, em quê? Ok, bem-vindo de volta. Acabei de sair porta do dia anterior e vou colocá-la dentro das aulas para que você possa usá-la Ok, vamos continuar trabalhando no Android Studio. Use o ícone ao lado dos blocos de código para fechar os blocos de código ou clique no ícone para abrir o bloco. O que isso significa? Isso significa clicar neles para fechar o bloco e clicar em para abrir o Del. Se você clicar em, você tem algo parecido com isso. E se você clicar neles, você tem algo parecido com isso aberto. Você pode ver? Pressionamos e pressionamos Eu também posso pressionar o botão, Você pode ver o que está acontecendo? Pressione para minimizá-los. É muito melhor, até mesmo os comentários. Minimizamos os comentários como se selecionássemos esses ou esses. Você pode vê-los à direita, mas nós os minimizamos. Assim, podemos facilmente alternar entre eles. Remova o extra. Então, é tudo nosso comentário de código, esse comentário e isso, e nada mais. É melhor, especialmente quando você tem muitos objetos em seu layout. É muito, muito melhor. Ok, agora está realmente organizado. Agora, qual é a minha calculadora? Ok, agora eu adicionei dois campos de texto para obter as entradas do usuário para o meu cálculo Agora é hora de adicionar botões para calcular diferentes operações aritméticas Gostaríamos de ter algo assim no final. Mas o que são botões? Os botões comunicam ações que o usuário pode realizar. Você pode usar botões em lugares diferentes na interface de usuário do seu aplicativo. Ou, por exemplo, para cartões, diálogos, modelos de janelas, quadros de ferramentas ou todos os outros tipos de botões Temos quatro tipos de botões. Temos texto, botão, botão de contorno, botão de contenção de tigre O que isso significa? Como devo saber qual é qual? Eu dou alguns exemplos. Você pode ver isso, é um botão de texto, você pode ver este botão de contorno O botão de contorno tem a seguinte aparência. Talbot tem essa aparência. Os tgalbtens podem ser usados para vender a partir de um grupo de opções. Temos 123 opções, queremos escolher duas para isso. Nós, usuários do Galton, podemos escolher qualquer botão e conter. Na maioria das vezes, usamos o botão de conter. No momento, em nosso aplicativo, usamos o botão de conter. No futuro, usamos outros botões também, outros tipos de botões também Mas, por enquanto, eu só quero que você saiba que temos esses quatro tipos de botões, então não se confunda se no futuro os virmos, você diz, você não disse temos apenas esse tipo de botão? Não, temos outros botões para agora e mais tarde, os três restantes. Ok, vamos continuar. Material, um material de botão, como dissemos. Botão de contenção, é com isso que trabalhamos. Esse botão de material tem alguns atributos. Alguns dos mais importantes são esses. Como de costume, você tem o ID. O que é ID? A maneira mais simples, como eu disse, ID é igual ao nome da pessoa que você chama É a identidade dele ou dela. O ID é como você identifica uma equipe. Qualquer botão, esse botão de material tem um ID. Outros objetos, como eu disse no Andrew Studio, têm IDs, qualquer um mostra qual botão nós mostramos no botão. Temos algum texto no botão, por exemplo, pelos menos ou outras coisas que podemos encontrar no atributo Claro que temos outro botão Adicionar, podemos adicionar botão, mas por enquanto não adicionamos botão. Adicionamos o botão Material para isso. Ok, se eu estiver certo, eu tenho esse material de botão. Mas, como você pode ver, tudo bem, eu tenho esse material do Google Android. Mas neste eu adiciono um botão mais avançado. Ok, eu adicionei e embrulhei o conteúdo. Embrulhe o conteúdo. E nós, e essa altura, e a fechamos assim, eu tenho esse erro. Por quê? Porque estamos dentro do layout de restrições Qual é a regra para o layout restrito? Você deve sempre especificar onde seu objeto está conectado para se conectar à esquerda e conectar-se a onde. Devemos especificar isso. Devemos dizer, por exemplo, parte superior desse botão deve estar na parte inferior dele. Você vê isso? Deixe-me fazer isso de novo. Por enquanto, é pai porque está conectado, mas eu não quero isso. Quero que seja conectado à parte inferior do segundo número. Eu tenho essa restrição de layout de cima para baixo do layout de entrada em segundo lugar Eu faço isso sem escrever. Eu só quero mostrar que você também pode fazer dessa maneira. Eu ainda tenho esse problema. Por quê? Porque eu me lembro em duas direções, então uma direção fica à esquerda, pelo menos duas direções. Então, eu também quero fazer isso sem escrever nenhum código. Basta vir aqui, clicar, movê-lo para a esquerda e liberar o Layout Constraint Start para começar com qual pai? Ok, eu resolvi o erro. Eu resolvi o problema desse layout de restrição. Ok, vamos adicionar outro botão. Botão de material. Claro que apenas copiamos o sabor. Temos dois botões um em cima do outro, mas eu quero o segundo botão à direita do primeiro botão, que eles não fiquem um em cima do outro. O que devo fazer? Você deve primeiro adicionar um ID para o primeiro botão. Está bem? Id, ok, BT N, então restrição de layout Comece com o início dos pais. Não, não devemos dizer nem mesmo o início de. Devemos dizer dois para quê? Sim, de ponta a ponta de quem? Para o final de N. Olhe para a direita. Na revisão por pares, o botão está se movendo. Desta vez, está à direita do primeiro botão. Então, vamos fazer isso de novo. Copiar. Ok, eu tenho 123 e quatro botões. Três deles, como você pode ver, estão um em cima do outro. Eu deveria adicionar o ID e fazer a mesma coisa, mas acho que deveria haver uma maneira melhor. O que você acha que continuaremos da melhor maneira no próximo vídeo. 17. Dia 3: Noções básicas de layout linear no Android: Layout linear. Ok, vamos organizá-los da melhor maneira. O que devemos fazer? Deveríamos ter um layout linear L. Tipos de layout do Android. Já falamos sobre layout de restrições. Temos muitos layouts diferentes. Agora é hora do layout linear. O layout linear é um grupo, é um grupo de visualizações que alinha todas as crianças em uma única direção, vertical ou É um layout muito útil, pois queremos falar sobre isso nesta sessão. Ok, atributos de layout linear. Temos esses cinco atributos mais úteis. Você também tem outros atributos, mas é claro que trabalhamos muito com esses cinco. ID, suprimento e identificador, você pode chamar seu objeto com esse ID. Parece um nome para uma orientação pessoal. Você pode dizer que as coisas devem estar na vertical ou na horizontal. Altura. E, claro, Gravity. Cobrimos a gravidade no vídeo e também lá dentro. Ok, claro. Conteúdo Conteúdo. Eu apenas pressiono inter, inter, inter. Nada mais, se você quiser saber. Quero dizer três dentro e outro dentro e outro dentro. Obviamente, podemos adicionar um layout de restrição. Nesse layout de restrição, quero dizer qualquer layout dentro do outro layout Mas acho que é melhor para esse curso e essa situação usar o layout linear. Ok, deixe-me fechar isso, já que eu escrevo este, Android Studio, escreva isso para mim agora. Eu posso colocar o que eu quiser entre o tipo inicial e final. Como sempre, temos um erro. O que é esse erro? Dizia que você deveria especificar onde devo mostrá-lo? Por que é simples? Porque está dentro do layout de restrição. As regras de layout de restrição dizem que você precisa especificar cada objeto dentro mim dentro desse layout de restrição Onde devo mostrá-los? Pelo menos você deve especificar a ancoragem, como você vê, por exemplo, no material, mas especifique dois lugares para se conectar, um para começar, um para cima, pelo menos dois Se você colocar um, mesmo que seja um, você terá o erro em dois. De qualquer forma, também temos esse erro. Deixe-me resolver isso. De quantas maneiras eu tenho um? Use essa visualização com um clique do mouse e arraste até o local desejado. Uma maneira é essa segunda maneira. Venha aqui, pressione Inter e comece a digitar o código que eu quero Assim, uma restrição de layout, comece de baixo para baixo De todas as outras coisas, essa é a segunda maneira, basta digitar. Mas meu favorito. Meu favorito. E, como posso sugerir, é o seu favorito no futuro. Venha aqui Oh, eu adoro isso. Controle C. Controle. Eu realmente amo isso. Tentamos fazer com que seja o melhor curso possível para Android Studio e Catlin Eu tento te dar o máximo de dicas e truques que posso, por exemplo. Ok, layout de entrada em segundo lugar. Há layout de entrada, este é o segundo layout de entrada. Mas onde está? Como podemos encontrá-lo? Na parte inferior esquerda do teclado, você tem a tecla de controle. Pressione a tecla de controle e , em seguida, mova o mouse sobre ela. Se você clicar nele, poderá ver o que aponta, para o que ele aponta. Clique aqui significa, deixe-me tentar isso de novo. Este é meu layout linear. Em segundo lugar, fica de cima para baixo do layout de entrada, mas não sei onde está o layout de entrada. Em segundo lugar, como eu deveria saber? Pressione o controle, vá e clique. Mostra que sua identidade veio daqui. Tão fácil quanto você vê. Ok, o que devo fazer a seguir? Eu ainda tenho o erro. Deixe-me adicionar outro. Copie e cole. Porque eu não tenho o terceiro. Eu acabei de adicionar. Eu deveria adicionar outro ou posso fazer outra coisa. Deixe-me ver. Em vez de dizer isso minha esquerda deve estar conectada à esquerda dos pais, posso facilmente remover exatamente o Look e alterar minha correspondência de peso pois o peso é da esquerda para a direita e parece totalmente possível com nossas posições esquerda e direita resolvidas. Não temos nenhum problema de onde deveria estar. Para o meio, para a direita, para a esquerda. Você adiciona para resolver esse problema, onde deveria estar? Mas como eu adiciono esse pai correspondente, o problema está resolvido. É da esquerda até a direita. E não há outro espaço, então não preciso especificar minha esquerda e direita. Eu ainda posso, mas não preciso. Meu erro para esse layout de restrição desapareceu. Agora espero poder mostrar meu ponto de vista. Então, temos esse layout linear. Ok. Além disso, o que devemos fazer com isso Podemos selecionar isso e isso e controlar o controle de corte X. Colar todos os quatro botões agora estão dentro desse layout linear. Como eles estão no meu layout linear, eu não tenho isso. Por quê? Porque o layout linear não precisa deles. Excluir os outros também será excluído. Ok, eu excluo todos eles. Você pode ver à direita, eu os excluo, mas não há diferença por quê, porque é um layout linear. Você pode ver se eu clicar no layout linear, dizem que esta é minha camada linear. É uma linha. E a parte superior inferior da esquerda, direita e inferior não está conectada a nada. E todos os quatro objetos estão dentro disso e se organizam como uma linha. O que quero dizer quando digo que isso é como uma linha? Veja, se eu disser orientação, eu tenho essa orientação que é horizontal. Por padrão, se eu mudar para vertical, você pode ver que todos os botões estão verticalmente um em relação ao outro Colocados um ao outro verticalmente. Mas, por padrão, eles estão na horizontal. Se eu deletar isso. Isso, considere-o como horizontal. Se eu controlar o espaço, certo? Na horizontal, elas são horizontais. Se eu removê-lo, deixe-me mostrar o controle padrão X. Ainda é o padrão horizontal Mais uma vez, isso é vertical. Espero poder mostrar como funciona a orientação no layout linear? Como você viu no layout linear, não podemos colocar dois objetos um em cima do outro. Por quê? Porque eles estão lado a lado em uma linha. Mas, como você viu no layout de restrições, podemos colocá-los um no outro ao fazer isso muitas vezes Deixe-me mostrar uma melhor restrição superior ao controle de botão X. Agora você pode ver os botões e esse layout linear estão acima dos outros objetos nesse layout de restrição Mas mesmo nesse momento, todos os quatro botões estão próximos um do outro e nenhum deles está em cima do outro. Por quê? Porque esse é um layout linear. Lembre-se, lembre-se de que você deve saber como o layout linear funciona. Você deve saber como funciona o layout de restrições. E com base na sua necessidade, você pode decidir qual é a melhor em cada situação, é claro. Ok, eu tenho o A. Deixe-me adicionar os outros IDs também. Ok, eu já adicionei PT e adicionei agora PT e menos. Eu também adicionei a divisão PTN. Só lembro que deveria te mostrar outra coisa. Você vê se você clica aqui, não apenas clica, é clique e não selecionado. Então, basta clicar em Pressionar controle C. No meu teclado, você pode ver o Android Studio copiar a linha inteira. Como eu disse, o mais importante neste curso é mostrar o máximo que puder, dicas, truques e outras coisas. Por quê? Porque tenho muitos anos de experiência. O que acontece se eu não puder contar tudo isso para você? Ok. Você pode ver que eu apenas clico e pressiono control. Veja a linha inteira copiada. Eu clico aqui, só aqui. Não faça nada, não selecione, nada. Não pressione Inter no meu teclado. Então, eu apenas pressiono o controle. Nós, do Android Studio, adicionamos outra linha e fazemos a ineração para mim. Adicione essa coisa que acabei de copiar tão facilmente quanto você pode ver e adicione-a para mim em uma nova linha Mas eu tenho um erro. O que é erro? Isso é duplicado, mas não tem problema. Deixe-me bem, multiplique PTN. Eu adiciono esse PTN porque é uma regra personalizada entre programadores Não é necessário, mas é melhor fazer isso. Eu tenho essa vertical e deixe-me mudá-la para essa horizontal também. É opcional, como eu disse, é a horizontal padrão. Está bem? Ok, eu tenho mais um problema e outro carrapato. Por isso, quero mostrar que eles estão unidos um ao outro e este tem um toque extra Esse é o fundo da questão e não é bom. O que devo fazer? Talvez veja Inter. Tenho muitos problemas e muitos outros problemas. Mesmo aqui, espaço extra, espaço desnecessário e código de escrita incorreto. O que devo fazer, especialmente quando meu código é muito grande? Por exemplo, você pode ver que eu tenho apenas 116 linhas. E se eu tiver 500 linhas? Como devo organizá-los? Eu posso usar o código do menu aqui. Formatar controle de arquivo mais mais shift mais L. Você pode pressionar o controle do teclado Shift mais L ou acessar o código do menu e pressionar Reformatar arquivo Agora, o Android Studio mostra isso você deseja reformar a atividade do arquivo no LineMML . O que você quer fazer? Eu digo que quero organizar o código. Não mantenha os freios de linha. Eu quero fazer essas duas coisas. Corra. Você quer remover quebras de linha personalizadas? Sim, eu tenho. Eu não verifico isso porque às vezes talvez eu pressione não. Ok. Sim. Agora, o que eu tenho? Eu peço que o spray traga todos eles, mas guardo este porque eu mesmo os adiciono Mas você pode ver, por exemplo, se eu não tenho o e agora eles estão grudados um no outro, você pode ver que eles estão grudados outro, o botão de controle e L, dizia, você quer fazer isso, eu disse sim, sim Ele adicionou esses Ers e organizou meu código. Agora posso ler meu código muito melhor. É um comando muito útil. Eu faço isso muitas vezes em projetos diferentes, mesmo no meu código, posso usar isso para reorganizar meu casaco Eu acho que você deveria saber todas essas coisas. Ok, devemos adicionar algum texto para cada um desses botões, mas vamos guardá-lo para o próximo vídeo. 18. Dia 3: Como trabalhar com textos e cordas (como gerenciar valores de Stings no Android): Texto e sequências de caracteres no Android, ok? Este, como você pode ver, nosso objeto tem ID. E é algo normal, algo estável, algo comum entre outros objetos também Sempre que você vê um ID, significa que você dá a esse objeto um nome como este, você tem esse texto, ok? Todos os objetos que podem mostrar um texto neles têm o atributo texto. Funciona de forma semelhante aos outros objetos. Você dá um t e ele mostra esse texto em seu aplicativo, por exemplo, também temos essa propriedade nos layouts de entrada de texto E o outro, deixe-me dar um valor p, eu dou esse plus, você pode ver esse plus aqui. Ok, acabei de copiar esse controle. Por que eu não apertei aqui e apertei o controle? Porque eu tenho personagens extras no final. Se eu copiar, talvez eu tenha que remover isso. Ok, Paste. Mas isso não deveria ser uma vantagem. Eu deveria colocar esse sinal negativo também. Em vez de mais, eu deveria dividi-lo também. Eu deveria multiplicar, esses quatro multiplicam. Olhe para a direita. Você tem esses quatro botões. Deixe-me executar o aplicativo. Ok, eu lancei meu aplicativo. Você pode ver mais, menos, divisão e multiplicação desta forma Mas espere um segundo. Eu tenho essa linha amarela aqui e aqui. Aqui, aqui. Segundo número, mesmo aqui. Por que eu tenho todas essas linhas amarelas? O que devo fazer? Deixe-me continuar com isso. Dizia que uma estrela de string codificada deveria usar um recurso de string de sinais O que isso significa? Está dizendo que você deve colocar todas as suas strings dentro dos recursos Como podemos ver, todos os recursos. Eu pressiono Projetos, para que eu possa ver os recursos, os valores completos nomeados, os valores abertos. Ok, eu abro, você tem a corda. Você deve colocar todas as suas cordas aqui. Além disso, você pode ignorá-lo. Tudo bem, seu aplicativo está em execução. Agora você pode ver que eu executo o aplicativo. Está tudo bem Mas é recomendável que você coloque todas as suas cordas aqui. É muito útil, especialmente quando você quer usar um segundo idioma. Imagine que você publica seu aplicativo e agora tem muitos usuários. Agora você quer usar um segundo idioma, terceiro idioma, talvez dez idiomas. O que você deve fazer? Essa string ajuda você nessas situações. Essa folha de barbante está ajudando. É ótimo. É melhor e recomendado. Você coloca todas as suas cordas aqui. Onde dizer cordas, é recomendável colocar todas as cordas. Coloque o papel alumínio e a vantagem do estúdio. Fácil de gerenciar e modificar seu texto e strings. Fácil de adicionar outros idiomas ao seu aplicativo. Quero dizer valores de string localizados. Desvantagem. Nenhuma. Você pode ver onde estão as cordas? Você tem cordas embaixo disso você tem uma corda depois dessa coisa. Você pode ver a estrutura Exml da linguagem. Os valores da string são restaurados como um par de valores de nome dentro da string, dessa forma. Você pode ver assim, esse é o nome para indicar qual coisa você pretende mostrar em um objeto ou em outras coisas. Valor significa definir ou modificar o que deve ser mostrado no objeto. Lembre-se de que o valor é o que você mostra ao seu exemplo de usuário. É melhor Ok. E Roy usa, oh, é bom, é igual a string, essa referência ao arquivo de string sobre o qual falamos dentro desse Dentro desse arquivo, você procura o nome T R, você procura esse nome dentro desse nome de string, você tinha TR e esse nome para o texto que você mostrou esse valor. E se você alterar o caractere pelos para, por exemplo, essa adição de texto, agora você tem exatamente a mesma coisa. Mas quando você executa seu aplicativo em vez deste, você pode ver esse aplicativo se você usar em muitas vezes e em muitos lugares, basta editar este e todos esses lugares serão substituídos. Ok, mudamos para isso, falamos sobre esse nome. Nós mudamos desses para isso, isso é para isso. Além disso, se você pode ver, eu o coloco aqui e mudamos para isso. Em todos os lugares em que usamos esse nome assim. Agora mude, espero poder explicar isso. Nós abordamos isso no vídeo, podemos ter certeza de que você entendeu. O que está dentro disso, são recursos, início e recursos, um nome de string, nome de aplicativo, minha calculadora, nome de sua string. Cada uma das suas strings tem um nome e cada uma delas tem um valor Por exemplo, você tem uma string que chamou um nome. Esse é o nome do seu aplicativo. O valor é minha calculadora. Como podemos adicionar isso? Eu posso clicar aqui e pressionar Control. Copie e controle. Outro controle por quê? Meu primeiro controle não funciona porque já está selecionada essa linha e o texto que está, basta copiá-lo para essa linha. Sem diferença, mas segundo controle. Adicione esse outro controle de controle e eu posso alterar cada um desses nomes e seus valores para que eu possa usar esses nomes dentro do meu aplicativo. Existe uma maneira diferente? Sim Se eu quiser, posso duplicar. Deixe-me mostrar isso rapidamente como um filme. Ele controla D aqui. Linha duplicada. Ele não copia seu código e , em seguida, você deseja colá-lo. De qualquer forma, basta duplicar essa linha. Controle, controle, controle, controle facilmente e o controla para desfazer o que acabei De qualquer forma. Deixe-me voltar rapidamente para aqui. Você pode ver se eu entrar lá, eu tenho essa lâmpada. O que isso diz? Extraia um recurso de string. Se eu pressionar isso, ele dirá: qual é o nome do seu recurso? E, claro, você pode ver o valor, mas como você deve chamá-lo? Deixe-me ver como devo chamá-lo. Ok, T R underscore play. Ok. Pessoalmente, recomendo que você adicione esse SDR em todos os lugares antes do nome da string É mais fácil de entender. Eu pressiono, ok, e como você pode ver, um sinal, uma string STR se multiplica dentro do nosso arquivo de string Olhe dentro do nosso arquivo de string, encontre STR, multiplique, seja o que for Coloque aqui, deixe-me ver. Multiplique o Android Studio que acabei de adicionar para mim, qual é o valor S star Sempre que eu quiser usar isso, posso usá-lo facilmente em muitos outros lugares Se em algum momento eu quiser substituí-lo pelo texto, por exemplo, multiplicamos em vez dessa estrela Eu escrevo em um só lugar. Todos os lugares que eu uso substituem, você não deve ter muitos idiomas. Mesmo que você tenha apenas um idioma, você pode usá-lo muitas vezes, em muitos lugares. Se você quiser alterá-lo ou corrigi-lo, você pode facilmente fazer isso aqui, faça aqui. Chegamos a essa string, XML. Mas e se eu fechar? Não sei, onde está essa corda de machado? Eu posso te mostrar. Está aqui. Mas não, onde está? Vou te mostrar o carrapato. Deixe-me refrescar sua memória. Você pressiona o botão esquerdo no teclado. O botão de controle, pressione-o. Mova sua boca. Se você clicar nele, ele mostra de onde vem? Pré. Veio daqui. Mesmo exatamente, mostre qual linha você vê. Perca isso. Pressione exatamente a partir daqui. É muito bom. Ok, deixe-me fazer outra. Eu tenho isso, mas quero fazer isso com uma dica. Ok, eu tenho a dica nesta entrada de texto. Ok, eu tenho isso. Você pode clicar ou pressionar Alt mais In. O que isso significa? Pressione Alt e ele abrirá isso para você. Ou você pode pressionar aqui ou entrar. É o mesmo. Extraia o recurso de string. Ok. nome do nosso recurso será o primeiro número e o valor, o texto exato que escrevemos. Está bem? Acabei de adicionar o sublinhado STR, ok? E a linha amarela. E se eu pressionar control e clicar nele, esse é o nosso primeiro número STR e o valor é o primeiro número Há alguma diferença? Se eu executar o aplicativo, terei meu primeiro número escolhido? Sim Você ainda tem seus primeiros números? Não há diferença. Você acabou de organizar todas as suas tomadas. Ok. Mais um. Eu uso a lâmpada ou um inter, ok, para te mostrar o barco Pontuação C, R. Está bem? Feito. Eu não pressiono o controle e clico, mas como você pode ver, não faz diferença. Todos eles estão aqui. Faltam três. Eu não vou fazer esses três. E guarde-os para o próximo vídeo, porque quero mostrar como é o uso de vários idiomas no próximo vídeo Eu também abordo isso só para estar mais familiarizado com isso. Não vamos criar um idioma múltiplo porque somos apenas iniciantes, mas faremos isso no futuro Eu só quero te mostrar como isso funciona. Junte-se a mim no próximo vídeo. Obrigada 19. Dia 3: Introdução a aplicativos e localização para Android em vários idiomas: Adicione strings para outro idioma. Ok, eles voltam. Temos essa visão do Android na parte superior. Você pode ver isso. Android veja Android. Nós o mudamos para o que projetar. É assim que seu projeto fica no disco rígido onde está salvo, ok? Eu abro o aplicativo, abro o SRC, significa Fonte, abro principal, essa pasta principal, ok? Eu abro os recursos de RES um pouco mais, ok? Eu tenho esses valores de pasta. Eu também o abro. Equipe de cordas de cores, você pode adivinhar que a cor é para minhas cores. E essa corda tem todas as minhas cordas. Portanto, temos os recursos de como adicionar outra string para que M altere a visualização do Android para a visualização do projeto. Na janela do projeto, você pode ver bem esta segunda etapa. R E S Preencha o aplicativo SRC Fol. Neste aplicativo SRC completo, encontre todos os seus recursos, recurso RS Clique com o botão direito do mouse nos recursos e escolha o diretório; nesses recursos, clique com o botão direito do mouse em novo diretório, Etapa quatro, nome. O novo nome do diretório deve começar com valores. Continue esse personagem com seu idioma de destino, mas não com o todo. Por exemplo, se você quiser francês, apenas se quiser usar árabe, R, é muito simples. Etapa cinco, copie o arquivo XML de string atual no diretório de valores, no novo diretório. O que você tem, os valores, essas cadeias de caracteres dentro dele Você copia isso dentro dos valores franceses. Como você pode ver, por exemplo, eu já tenho árabe. Você pode ter vários idiomas, quantos quiser. De qualquer forma, passo seis, volte para a visualização do Android na janela do projeto. Eu quero dizer isso. Passo sete, agora você tem outras cadeias de caracteres de idioma que podem ser facilmente traduzidas e modificadas Como você pode ver, você tem String, isso é padrão. Você também tem árabe e francês. Você pode ver que isso não tem nada depois esse idioma padrão é corrigido nas strings Em, eu vou te dar, por exemplo , inglês, E, N, francês, F, R, japonês, J A e Alemanha G, E. Clique com o botão direito aqui E os recursos, você vê os recursos S, clique com o botão direito do mouse. O novo diretório agora tem valores. Mas eu tenho valores. Sim, eu tenho valores. Esses são meus valores , são meus valores padrão. Meus valores padrão são inglês. Agora, o que eu quero em outro idioma, deixe-me ver. Por exemplo, eles têm direito de usar uma linguagem oposta. É bom. A, R, árabe e pressione Inter. Eu tenho esses valores, árabe, R, o quê. Agora, clique com o botão direito e copie ou controle. C pode aqui e colar. O que devemos colar? O que temos aqui? Essa corda? É exatamente como nossa sequência de caracteres anterior. Por quê? Porque copiamos e colamos agora o que muda o projeto para o Android. Agora você tem todas essas cadeias de caracteres padrão, cordas árabes Você pode ver o árabe. E você pode ver os dois após o nome da pasta, porque você tem duas cadeias Ok, deixe-me traduzir isso em árabe. Eu só copio esses. E eu levo para o Google Translate porque não sei nada de árabe. Eu colo lá e apenas copio o Resultado e o trago de volta. Espere, tudo bem. Traduzido. Colar. Ok, minha calculadora. E isso é Star. Mas esses dois, esses são traduzidos. Ok. Como você pode ver, já que copiei e colo do Google Translate, um dos meus nomes o recortou , o que devo fazer? Eu volto ao meu original, posso ver a cópia e trazê-la de volta aqui. Nosso segundo número. Ok. Se você tiver todos esses problemas, é melhor copiar este e este texto e 1.1 levá-los ao Google Translate e trazê-los de volta. Se você trabalha em uma empresa com muitas outras pessoas, é melhor entregá-la a uma pessoa que trabalha como tradutora, não apenas usar o Google Translate Eu apenas uso o Google Translate para mostrar como parece que não é profissional. Se você quiser fazer isso profissionalmente, um tradutor deve fazer isso por você Quero dizer, de qualquer forma, dizia que traduz esse padrão para todos os habitantes locais no editor de traduções Deixe-me experimentar. Clique no que eu tenho, essas quatro chaves estão repletas de recursos em valores traduzíveis O que isso significa? Meu valor padrão. Você se lembra? Eu disse que tenho um preenchedor com meu padrão e adiciono R. Meu valor padrão é o primeiro número, meu valor padrão é o segundo número Mas meu texto traduzido é isso e isso. Se eu tiver um terceiro idioma, por exemplo, francês, tenho outra coluna para francês, chinês, japonês, coreano ou muitos outros idiomas com todas as outras colunas. Espero poder te mostrar. O que eu quero dizer? De qualquer forma, só para ter certeza, temos esse segundo número aqui e esse segundo número aqui. O nome deve ser o mesmo, somente o valor deve ser traduzido, o nome deve ser o mesmo. Mesmo que tenha sido criado pelo tradutor, você deve trazer o nome Todos os nomes são iguais. Deixe-me mostrar mais uma coisa neste editor, nesta tabela de colunas, o que isso significa? Eu tenho essa estrela para multiplicar, mas a estrela não pode ser traduzida Eu só tenho uma estrela em todos os idiomas, por exemplo, acabei de verificar isso. Minha estrela só tem o valor padrão. Deixe-me mostrar outra coisa de outras maneiras, veja isso. Veja, eu tenho esse começo aqui em árabe e eu tenho isso aqui em inglês. Se eu remover isso daqui, por exemplo, assim, eu não o tenho mais. Eu uso o controle se eu quiser. Posso trazê-lo de volta de qualquer maneira? Eu não tenho isso. O que acontece agora? Se eu voltasse aos valores por valor definido, eu teria essa linha vermelha porque eu não tenho um nome traduzido lá, então eu tenho essa linha vermelha. Mas se, deixe-me fechá-lo e abri-lo novamente. Ok, isso é estrela, eu tenho essa coisa vermelha. E dizia que não o temos em árabe. referida chave K, R multiply não tem tradução para o árabe local Mas se eu disser que está traduzido , não tem nenhuma tradução. É apenas uma estrela em todos os idiomas. Ou talvez mais divisão menos. De qualquer forma, não é mais lido. Se eu voltar aqui, não será mais lido. Por quê? Porque traduzível é igual Não pode mais ser traduzido. Espero poder explicar isso bem. Ok, e agora? Agora eu tenho isso e quero adicionar esse plus também. Que mudança você vê. Nome do recurso, valor do recurso, curso K, ST. Eu tenho isso também. Valores árabes. Ok, então eu verifico. Eu verifiquei os valores da minha versão padrão e da minha versão em árabe. Eu pressiono isso, ok, e corro CR. Se eu deixar o mouse aqui, você também poderá ver o valor padrão e o valor árabe. E eu pressiono o controle à esquerda no meu teclado. Eu movo o mouse para cá. Implementação múltipla. Ah, o que é implementação múltipla? Se eu clicar nele, disse que não posso te levar até lá. Por quê? Porque não tem um único lugar. Ele tem várias implementações. Você pode escolher seu destino. Você tem um nos valores e você tem um neste árabe. Qual deles você quer? Eu digo mostre-me em valores, isso se mostra em valores. Deixe-me tentar isso de novo. Controle. Clique agora. Mostre-me a versão em árabe. Eu também tenho isso na versão árabe. Se eu deixar o mouse sobre o nome, aqui, posso ver a configuração em Padrão e em árabe, e cada um dos valores para eles. Só para ficar claro, fazemos isso para mostrar como você pode ter dois idiomas, muitos outros idiomas, até dez idiomas. E, como você pode ver, é muito fácil. É muito simples adicionar outros idiomas, mas por enquanto é uma instrução boa e muito útil sobre como usar strings. E como estamos no nível básico, não podemos adicionar linguagem em nosso aplicativo por enquanto. Mas só para você se familiarizar com eles, abordamos essas coisas. Está bem? Basta adicionar o outro, por exemplo, o alt inter, STR menos e Arábica, eu também adiciono esse STR D no stream, você pode Eu tenho isso. E até multiplique Como você pode ver, eu não tenho essas linhas amarelas aqui, porque agora está a caminho que o Studio e o Google recomendaram. Imagine que você tenha. Use isso na casa 100 ou esse primeiro número na casa 100? E você pensa, o que devo fazer se eu quiser mudar meu primeiro número, pegar essa string? Você pode ver que eu tenho o valor padrão aqui e este é o meu primeiro número de SCR. Eu acho que eu deveria adicionar um S no final disso, por exemplo, esses primeiros números. Ou eu quero mudar para algo assim, 123 e segundo número 123. E três pontos e três pontos também. O que acontece agora? De qualquer forma, dizia que por três pontos você pode ter esse personagem, mas eu só uso dois pontos porque não quero entrar nele. De qualquer forma, eu continuo com as aulas, podemos alcançá-los em outras Então, os primeiros números 123 e três pontos. Segundo número 1232 pontos e esses caracteres. Então imagine que eu o uso em dez jogadas, 15 jogadas, 100 jogadas. Devo ir trocar cada um deles? Claro que não. Se eu adicionar isso ou qualquer outra coisa depois disso, todos os lugares que eu uso mudam. Agora você pode ver os primeiros números 123. Mesmo se eu executar meu aplicativo, você pode ver dentro do aplicativo que todos eles foram alterados. Eu o uso em 100 lugares diferentes, todos eles mudam de uma só vez. Porque eu os troco em um só lugar. Mesmo que eu queira mudar isso mais dois, o que acontece agora? Volte, você vê esse anúncio. Se eu tiver dois idiomas no meu aplicativo, posso escrever a palavra em árabe para o anúncio nesse idioma. Se meu aplicativo mudar o idioma para árabe, o usuário poderá ver esse anúncio no idioma árabe ou em qualquer outro idioma. Ok, vamos trocá-lo de volta. Resumindo, mesmo que você tenha um idioma, é melhor. É melhor usar o arquivo XML de string. Você pode organizar seu texto. Continuamos com nossos botões no próximo vídeo. 20. Dia 3: Propriedades de buttons: Propriedades de quatro botões. Agora, temos esses quatro botões e gostaríamos de melhorá-los. O que devemos fazer? Temos esse layout linear. OK. Imprensa. Temos gravidade, gravidade versus gravidade do layout. A gravidade organiza o conteúdo dentro dos meios de visualização do objeto gravidade do layout organiza a posição das visualizações do objeto fora de si mesma em relação à sua patente Vamos ver a diferença de alguns valores nesta imagem. Além disso, também existem outros valores. Mas veja a diferença aqui. As caixas azuis são campos de texto dentro de um layout linear. Deixe-me ver. Com a gravidade, temos o Android no centro esquerdo. Com a gravidade do layout, temos o andróide no centro esquerdo, por sua patente, não por si só. Notas sobre gravidade versus gravidade do layout, gravidade, conteúdo da embalagem e gravidade não têm sentido juntas A gravidade não funciona bem em um layout relativo, mas pode ser útil com um layout linear. Gravidade do layout. A gravidade do layout só funciona no layout linear e no layout do quadro. O pai da combinação e a gravidade do layout não têm sentido juntos. Tudo com layout abaixo da linha define algo que afeta os elementos externos. Por favor, tenha cuidado. Tudo o que é sublinhado no layout define algo que afeta os elementos externos Acho que devemos torná-lo mais grande e mais ousado. Ele pode estar no centro e em todo o botão ou no centro agora. Então, aprendemos a usar a gravidade. Onde podemos usar a gravidade. Podemos usá-lo em outros lugares? Deixe-me tentar. Controle C. Eu copio toda a linha. Eu tenho o segundo valor e pressiono Controle e centro de gravidade. O que aconteceu com o segundo valor? O segundo número agora está no centro. Vamos continuar. Eu também tenho isso, Control. E eu tenho isso no centro. O que mais temos? Eu posso escrever em vez de centralizar, tenho meu primeiro número no final. Você pode ver a dica no final, ou até mesmo começar, eu posso tê-la no início É o valor diferente, como você pode ver. De qualquer forma, vamos continuar com esse layout linear. Eu tenho isso em Match Patent. E se eu der conteúdo de rap. Eu atribuo a gravidade a ela e disse B no centro. Mas se eu disser conteúdo de rap, é central, mas não tem mais espaço. Você sabe, o layout linear agora é embrulhar o conteúdo. Portanto, é o tamanho do conteúdo e o conteúdo está no centro. Mas à esquerda e à direita, não há mais espaço para ela estar em nenhum outro lugar. Mas se você disser padrão de correspondência. Agora você tem o espaço à esquerda e à direita. Agora, se você quiser estar no centro, você tem espaço para se mover ou, se quiser dizer n, você tem espaço para ir até o final, mas embrulhar o conteúdo, não há diferença entre o início o centro quando você quebra o conteúdo. Por quê? Porque não há espaço aqui. De qualquer forma, e o centro. Resumindo, a gravidade é para o interior. Por exemplo, você pode ver a dica. A equipe que estava dentro mudou sua localização, não fora. E no layout linear, as equipes que estão dentro do layout linear mudam de posição, não algo externo. Todo o layout linear não se move, não se move. Mas as coisas dentro do layout linear se movem com a gravidade. Assim, podemos entender como a gravidade afeta nossos objetos, todos os nossos objetos, e entrar na tela. Eu tenho mais um objeto para te mostrar. Eu tenho esse anúncio BTN, por exemplo, inter G, já que eles já estão centralizados, eu coloquei start Então você pode ver a vantagem no início agora. Deixe-me deletar isso. De qualquer forma. OK. Vamos esperar o layout. Você pesa 0,25 em um quarto, é de um. Se você escrever apenas cinco em vez disso, metade, é desviada para um, é desviada para um, como você infere seu número de dois dígitos, é igual a porcentagem, é igual São 25%, 25% para isso, 25% para isso, 25% para isso e 25% para isso. Agora, todos os quatro botões têm 25% para eles. Vamos torná-lo mais bonito. O que devemos fazer? Nós adicionamos margem. OK. Ok, oito D P é bom. Se dissermos um D P, algo assim, se dissermos 20 DP, algo assim, oito é bom, algo assim. Nove. É bom, mas e se nosso projeto se tornasse maior e tivéssemos mais margens e outras dimensões O que devemos fazer então? Como uma string, como você pode se lembrar, temos essa string aqui. Também falamos sobre outros idiomas. Temos quatro dimensões. E devemos colocar esses números e valores lá. No valor cli li, novo arquivo de recursos de valor OK. Diamantes são bons e dizem OK. OK. Neste arquivo, preciso ter um nome de homens devemos chamá-lo. Margem de dez e vamos fechá-la e dizer, ou digamos nove DP enquanto escrevemos agora, vamos usá-la Nós temos os nove aqui. Espaço de controle, temos margem de botão. Você pode ver que a margem do botão de diamante tem o mesmo valor. Eu coloquei meu mouse nele nove DP. Se eu mudar para 11, você pode ver que tenho 11 DP. Para qualquer outro valor. Agora eu tenho. Como definimos isso, você também pode usá-lo aqui para entrada de texto. Mas eu chamo isso de margem. Deixe-me mudar o nome. Vamos chamar isso de margem normal agora. Altere para a margem normal e copie isso. Eu tenho essa margem de layout. Eu quero que essa seja uma margem normal também. Como não coloquei o mesmo tipo no meu primeiro texto, eu apenas o uso aqui. Vamos ter essa margem para outros botões também. Controle C. Agora, Controle e controle, desculpe, Controle e controle. Assim, é lindo. OK. Você pode usar essa margem com outras coisas. Basta pressionar o controle C e copiar isso para este campo de entrada de texto, você também tem margem. Margem da propriedade ou comentários como ID. Muitos desses objetos têm margem. Como você pode ver, há uma diferença. Controle, cole novamente. Olhe para a direita Essa é a diferença. Deixe-me dar a de cima , não esta. Isso já tem a margem. Eu quero me dedicar a isso. Por exemplo, controle, eu dou um para isso. Eu pressiono control e colo novamente. Veja a diferença, controle essa mudança por causa da margem. Como ele tem sete D P? E, como eu disse, se eu mudar os sete DP aqui, todos os lugares usados serão alterados ao mesmo tempo OK. E eu só o troco em um só lugar. OK. Podemos executar o aplicativo e ver como ele se parece, mas você não pode fazer isso sozinho. E uma gorjeta extra. Eu apenas executo o aplicativo sozinho para ver o que acontece. Isso me dá um erro. E eu escolhi este APA tty. Eu mudo para esta API ty four e parece corrigir o erro e eu não tenho nenhum problema. Eu posso correr como você pode ver. Portanto, antes de se preocupar e fazer qualquer outra coisa, verifique essas coisas básicas. Por exemplo, seu nível de API ou outras coisas, ou talvez tenhamos reconstruído, você pode resolver o problema De qualquer forma, nos vemos no próximo vídeo. OK. 21. Dia 3: Questionário: Faça três perguntas do questionário. Primeira pergunta: quais são os diferentes tipos de botões? Quais são os diferentes tipos de botões? Pergunta dois. Quais são os usos do atributo Android ID. Quais são os usos do atributo ID Android? Você pode pausar o vídeo e responder à pergunta. Em seguida, retome o vídeo e continue assistindo. Ok. Pergunta três. O que o atributo de orientação do Android faz no layout linear, desculpe. O que o atributo de orientação do Android faz no layout linear? Ok. Pergunta quatro. Qual é a diferença entre gravidade e gravidade do layout? Qual é a diferença entre gravidade e gravidade do layout. Ok. 22. Dia 4: Questionário do dia3 respondido: Questionário do terceiro dia. Respostas. Vamos ver o que fazemos. Quais são os diferentes tipos de botões? Temos um botão de texto. Temos um botão de contorno. Botão Tugalt e contenha. Temos esses quatro tipos de botões. Pergunta dois. Quais são os usos do atributo Android ID. É um identificador e é usado para acessar um objeto posteriormente. Por exemplo, para definir outra posição de objeto relacionada a esse objeto ou no código para alterar ou modificar o objeto. Você pode pausar o vídeo e ler as respostas sozinho e compará-las com sua própria resposta Pergunta três? O que o atributo de orientação do Android faz no layout linear? Ele define a direção dos objetos dentro de um layout linear. Horizontal para uma linha vertical para uma coluna. O padrão é horizontal. Pergunta número quatro. Qual é a diferença entre gravidade e gravidade do layout? Gravidade, defina o conteúdo dentro do objeto. Gravidade do layout, defina a posição do objeto fora de si mesmo em relação à sua patente. 23. Dia 4: seção do resultado: Seção de resultados. Precisamos de uma parte resultante para o resultado da nossa calculadora. Vamos fechar tudo isso. Eu perco tudo isso. Agora eu tenho isso após o layout linear. Depois desse layout linear, quero espaço para controle de texto. Eu selecionei o conteúdo de embrulho. Eu apenas pressiono para dentro e no espaço de controle, para dentro. Ainda temos essa coisa vermelha porque devemos dizer onde queremos estar. Onde deve ser mostrado. A parte inferior do layout contrasta com a parte inferior da patente Eu apenas pressiono inter quando selecionei e escrevo start e start to start off e passei. Não tenho nenhum erro, mas dizia que você deve fechar Eu escrevo uma barra e você adiciona isso sem erro. Também precisamos de um texto. Vamos escrever um texto e o texto é comum entre as equipes que estão visíveis e podem receber texto. Eu posso te mostrar o texto. Temos um aviso porque é melhor estar dentro, como você se lembra, cordas. Pressione e pressione inter ao mesmo tempo para ver o que devemos fazer? Podemos clicar na bola de luz. Você pode clicar ou pressionar no recurso Extrair string. Vamos colocá-lo também em árabe e o nome do recurso. Adicionamos ST antes desse nome. Você se lembra do árabe que adicionamos, pressione este Ken, você tem um resultado de AtR aqui Temos esse árabe aqui. O que temos até agora, fechamos isso, eu uso essa mão. Nós temos isso aqui. Se você quiser ver melhor, desmarque a seleção. Você pode ver que está selecionado agora. Clicamos em qualquer outro lugar. Você desmarcou e pode ver o resultado aqui. Nós temos isso. Vamos escrever mais margem. E entre e controle do espaço, damos a ele uma margem normal A margem é para alguns espaços, um pequeno espaço das bordas. Agora, parece ótimo. Vamos continuar no próximo vídeo. 24. Dia 4: seção de resultados, parte 2: Seção de resultados, parte dois. Eu preciso de uma linha. Eu adiciono a largura do layout, como você pode ver, é obrigatório. Eu dou o equivalente ao pai e, claro, à altura. Como você pode ver, também é obrigatório. Eu dou dois D P e escrevo um Slash para fechar isso. Como você pode ver, agora temos essa linha aqui, mas eu não a quero lá. Eu quero isso no topo do meu resultado. Então, primeiro, damos a esse texto o rótulo de resultado D. T X t. Como você pode ver, temos essa linha vermelha abaixo da vista. Dizia que você deve especificar onde deseja ver essa visualização, a menos que a mostremos na parte superior. Eu digo, Ok, vou especificar onde você deve mostrar isso para mim. De baixo para cima do resultado t x. Nós apenas fornecemos o ID T x o resultado que acabamos de fornecer o ID. O que acabou de acontecer? Temos isso aqui agora, como você pode ver, e também devemos dar um pano de fundo. Então, escrevemos fundo, plano de fundo, de que cor? Eu acho que algo parecido é bom. Do mesmo tipo. E agora temos essa linha. Não mais. Então você pode ver Como eu quero que você veja, eu dou, por exemplo, 12 DP. Você vê que isso é uma mentira negra. Ok, eu vou dar, vou mudar de volta para dois ou dois DP. Já que não temos uma linha dentro e com o estúdio. Criamos uma vista e damos essa altura e w e damos essa visão de fundo. Por exemplo, a defasagem porque queremos a linha preta e, seja qual for a altura que atribuímos a ela, temos uma linha com essa espessura Veja, eu acabei de mudar para 11 12 DP e você pode ver uma linha mais grossa tão facilmente quanto isso pode ver uma linha mais grossa tão facilmente quanto Se eu der essa inteligência, por exemplo, cinco DP e der essa patente de fósforo Você tem uma linha como esta, dois DP novamente e a patente correspondente Vou trocá-lo de volta. Vamos colocar um pouco de preenchimento para essa visualização de texto, pressione aqui e aqui Você pode dizer Android e depois dizer preenchimento ou apenas dizer preenchimento Como você pode ver, temos essa margem normal, mas acho que devo especificar outra coisa para o preenchimento. Não. Eu abro valores. Vamos ver. Deveríamos criar algo aqui. Controle C nesta linha e pressione Inter Control V. Eu disse que você não pode ter duplicado Eu digo, Ok, deixe-me apenas ter um acolchoamento. Eu tenho um preenchimento normal e quero ter um pouco de diferença entre isso, dou oito Vamos fechar isso. E para o preenchimento, darei Normal, não mesclagem, preenchimento normal Agora, minimizamos isso dessa forma. Como você pode ver, o acolchoamento é para o interior. Se você não tem esse preenchimento, deixe-me ampliar mais Eu vou cortar isso. Você não tem esse espaço interno. O acolchoamento é para isso interno, interno. Deixe-me mostrar sua aposta. Para esta parte do lado interno, você tem esse preenchimento. Se você não tem, você não tem esse espaço. E se você não tem essa margem, margem para isso lá fora. É parecido com isso. Se você não tiver preenchimento, preenchimento é para dentro, se você não tiver margem de margem para a parte externa Se você alterar os valores para o preenchimento, os espaços internos se tornarão menores ou maiores, e para a margem, espaço externo ficará cada vez maior Menos ou mais. O que mais temos? Por exemplo, temos esse preenchimento e também podemos especificar esse preenchimento para parte superior ou inferior No fundo, acho que é uma amostra melhor. Temos isso para o fundo. Para a parte inferior, temos isso assim, removemos o preenchimento inferior, assim, preenchimento do botão traseiro, assim, e só temos o preenchimento, fica assim. O que mais temos? Inferior, início por cima e muitas outras coisas. Mas na maioria das vezes, usamos o preenchimento. Usamos a margem, não a especificação para a parte inferior ou superior. E mas você pode ter essas coisas. E acho que os alcançaremos em cursos futuros enquanto eu planto. Vou te dar mais um exemplo. Você vê essa margem. Vamos mudar essa margem, como preenchimento para não para a parte inferior, para começar Você tem a margem apenas para começar, somente no lado esquerdo. E se você remover isso, você terá tudo por perto. Chega disso, vamos copiar esse controle C e o caso aqui. Você disse que tem nomes duplicados. Eu removo esse rótulo. Agora não há problema em começar do zero com o que terminar com esse rótulo de resultado. Por que eu faço isso? Porque eu quero dizer que o resultado estará aqui. E eu quero que este mostre o resultado real. Então, este para saber onde está o resultado e este para mostrar o resultado. Vamos conectar o lado direito disso a aqui assim. Deixe-me mudar a inteligência. Temos conteúdo final, mas eu não quero muito pouco. Deixe-me ter um par de pais. Mas temos um problema, como podemos ver. Está na outra visualização de texto. Se eu alterá-lo novamente para embrulhar o conteúdo, como você pode ver, é muito pequeno. Então, nenhum deles me ajudou, e eu quero isso daqui do final deste texto até aqui. Mas o que devo fazer? Podemos escrever zero DP assim como zero dP. O que acabou de acontecer. Não é muito grande. Não é muito pequeno. É do jeito que eu quero esse DP zero para o w. Quando você pode usá-lo, você pode usá-lo quando estiver conectado à esquerda e à direita Se, por exemplo, sua direita não estiver conectada, você não poderá usar esse DP zero Por exemplo, deixe-me remover essa linha. Não pode mais funcionar porque seu direito não se conecta a esse direito. Se eu colocá-lo de volta, está funcionando agora. Espero que minhas dicas e truques possam ajudá-lo, porque tento dar o máximo de dicas e truques que posso. Só mais uma coisa, devemos dizer que deu, Por quê? Porque o texto, como você pode ver, está à esquerda. Eu quero isso no centro. Agora vamos executar o aplicativo. Estamos esperando. Nosso aplicativo está funcionando e é ótimo. Vamos continuar com isso no próximo vídeo. 25. Dia 4: ferramentas: Ferramentas. Como você sabe, é uma calculadora. Quero inserir cerca de dez ou 20 resultados para essa parte do resultado. Eu desço e, como você pode ver, tenho uma mensagem aqui. Vou simplesmente mudar para zero, um, dois, três, quatro, cinco, 6789 Ou talvez 20 dígitos. É melhor e mais realista. 20 dígitos são suficientes. Vamos ver qual é o resultado? Qual é o resultado final? É o nosso resultado final. Ficará assim se você inserir 20 dígitos. Vamos executar o aplicativo clicando em executar aplicativo. Nosso aplicativo está em execução agora. Eu minimizo isso e, como você pode ver, fica assim. Vamos parar com isso. Como você pode ver, o resultado me mostra esse número no dispositivo e no resultado final no dispositivo do usuário, usuário também pode ver esses números. O que eu quero fazer mudar esse Android para ferramentas. Como você pode ver, eu tenho isso agora, e esse sublinhado amarelo sumiu porque não é recomendável que eu o coloque no arquivo de string Então, deixe-me fazer o teste novamente. O que aconteceu agora é que não temos esse número aqui. Mas, como você pode ver, deixe-me parar o aplicativo. Você o tem aqui. Então você, como programador, pode ver qual é o resultado final? Qual é a aparência? É parecido com isso. Mas se você criar seu aplicativo final, o usuário não terá esses números. O usuário tem algo parecido com isso e um espaço vazio. É muito útil para mim, como designer, ver como fica cada parte se eu tiver que colocar algumas sequências de caracteres e alguns dados. Mas é claro que não queremos ter os dados em nosso aplicativo de saída É apenas um teste e para nos ajudar a melhorar o design para facilitar o design. Além disso, se eu parar novamente e minimizar, como você pode ver, se eu removê-lo, nada mudou. Ainda está aqui, é do mesmo tamanho. Tudo é o mesmo. Mas só colocamos isso aqui para ver o que vai acontecer. Agora, podemos saber de quanto espaço precisamos? Por exemplo, se 20 dígitos não couberem, podemos entendê-lo agora Mais uma coisa, já que já estamos aqui, deixe-me ver. Nós temos isso. O que acontece se removermos essa linha? Se o removermos, teremos um erro em todos os lugares que chamamos de ferramentas, e você pode importar namespace, para que possamos entender que você usa ferramentas e o que você quer dizer Podemos importar o namespace ou pressionar all inter. Basta clicar nele e importar as ferramentas. Tudo está agora. Como eu disse, se quisermos usar alguma coisa, devemos declarar essa coisa Por exemplo, queremos usar o Ts no namespace tools Então, primeiro, devemos usar o namespace tools. Depois disso, podemos usar ferramentas. Ou talvez Android, temos Android Android Android aqui e temos o namespace Android Se o removermos, dizia: “ Eu não conheço o Android”. O que é o Android. Você deve importar o namespace para Android. Caso contrário, você terá um erro, então importe e corrija. Resumindo, usamos essas palavras-chave e devemos fazer alguma coisa. Andrew Desio sabe quais são essas palavras-chave? Usamos namespaces para isso. 26. Dia 4: 005 variáveis parte 1: Variáveis, primeira parte, variáveis na corte. Variável é um continuador para classificar valores de dados, como definir se você escreve R, nome da variável é igual ao valor ou suas faixas variáveis são iguais ao valor e R ou kwar R, e R ou kwar R, o valor da variável Por exemplo, o primeiro nome é igual a ou. O primeiro nome é igual a john. O nome da variável e o primeiro nome mudam para John. O valor de a, o valor da variável, não pode ser alterado. Se você tiver certeza de que o valor não será modificado no futuro, use essa palavra. L H é igual a 25. Se dermos 45 na próxima linha ou em qualquer outro lugar, teremos um erro. As regras de nomes de variáveis podem conter dígitos, sublinhados e cifrões Deve começar com uma letra, cifrão ou sublinhado, com distinção entre maiúsculas e minúsculas Minha idade e idade são variáveis diferentes. Você vê o A, A maiúsculo ou um pequeno A. Eles fazem a diferença. Deve começar com uma letra minúscula e não pode conter espaço em branco. Palavras reservadas, como cortar palavras K, como R, ou uma string não podem ser usadas como nomes Qual é a aparência? Está concluído. Nosso design está concluído. Agora, tem essa aparência. Eu executo o projeto e, como você pode ver, se eu escrevo algo e aperto um botão, nada acontece e outro número aparece no botão e nada acontece. Precisamos escrever um código para dizer que, se clicarmos nesse botão, o que deve acontecer? Abrimos o projeto e no projeto, abrimos a atividade principal. Na atividade principal, temos essa parte e pressionamos inter. Escrevemos nosso código para a atividade. Eu quero encontrar este botão, este botão, PTN em, eu quero encontrar PTN em no meu código de corte Eu escrevo find view por ID. O que você quer encontrar? Quero encontrar o botão de material de malte aqui. O que é ID? Eu quero encontrá-lo pelo ID. Primeiro, quero analisar os recursos. Você vê que há recursos para. Eu escrevo R eu quero o ID, OU, R esse ID de ID. O que é ID? Você vê todas as identidades aqui. Eu quero PTN em. Veja aqui, PTN em. Essa é minha identidade. Então eu digo PTN em. Só quero ter certeza de que posso pressionar o controle e clicar nele. Isso me leva até aquele botão com esse ID. Mais uma vez, pressione o controle, clique no ID. É a isso que nos referimos. Espero dizer tudo isso claramente, porque quero ter certeza de que você sabe disso muito bem. Você o encontra. O que devo fazer? Eu coloquei um ponto. O que devemos fazer? Defina um ouvinte de clique. E, como você pode ver, temos dois ouvintes configurados para desclicar. Isso e isso. Eu quero esse. No Inter, você vê todos os objetos que você tem aqui têm um ouvinte de desclique Mesmo essas caixas para inserir texto, essas coisas têm um ouvinte desclicado como o. De qualquer forma, é muito simples. Dizemos sente-se ao clicar, ouvinte. O que isso significa? Isso significa, o que deve acontecer se clicarmos nesse botão nessa coisa, em qualquer coisa. O que deveria acontecer? Deveria acontecer assim. Pegue esse número. Pegue esse número. Adicione esses dois juntos e mostre esses dois dentro disso. Isso é o que precisamos fazer. Pegue esse número, pegue esse número, adicione esses dois e mostre-os aqui. Vamos fazer isso. Queremos levar isso. O que é isso? É a entrada de texto dit text com o nome do primeiro valor EDT O que eu quero fazer é encontrar a visualização por ID. Novamente, encontre a visualização por ID. O que é isso? É dit, dit with Big E dit dit text ou a ser especificado. Não há diferença, mas, para ser especificado, entrada de texto edita texto. Entrada de texto edita texto. E dizia que você deveria importar texto, entrada, editar texto. Você vê? Se você não tiver isso, você deve importar este importado de Classe I. Então está tudo bem. Vamos endurecer isso novamente. OK. Editar texto ou texto em ambos os textos editados são ambos texto editado. Só quero mostrar que não há diferença e que você pode usar os dois. Qual é sua identificação? R ponto do recurso, ponto qual ID do ponto. Eu quero o ID, ponto, depois qual EDT Você pode entender agora por que escrevemos textos editados com EDT ou textos ou botões com algo antes deles Por exemplo, escrevemos para botms Bt N porque os encontramos facilmente. De qualquer forma, DT é o primeiro valor, e é o mesmo. Você pode facilmente pressionar o controle e clicar nele. Você vê que você se refere a quê. O que eu quero, eu quero o valor interno que é necessário. Como posso encontrar um ponto no texto que eu quero. Eu quero o texto dentro desse texto de edição. Então, deixe-me clicar aqui Controle C e ir para a próxima linha, Controle V. Eu tenho dois desses agora, mas não o primeiro valor. Eu quero o segundo para o segundo. Eu tenho edições. Primeiro, edite em segundo lugar. É muito comum. copiar uma linha e colar em outro lugar, para que eu não precise escrever todas essas coisas. Só uma parte que muda. Agora, como dizemos, queremos adicionar isso e colocá-los nessa parte. Preciso de um local para armazenar o valor dos dados. Eu preciso de um lugar para valorizar meu valor. Muitas vezes você precisa de algum lugar para restaurar seu texto, seus valores, seu número. Esse é o momento em que usamos variáveis. Particular e variável, use R. R é a abreviação de variável. Como devemos chamar essa variável? Nós o chamamos de H ou família ou sobrenome sobrenome pi n. O que você deseja armazenar nisso? Eu quero guardar isso. Deixe-me remover isso e apenas nomear. Que tipo de dados você deseja armazenar nisso? Eu quero armazenar texto dentro dessa variável. O que é texto, nós o conhecemos como uma string. Você vê o problema. Você deve escrever Big S. Se você não escrever Big S, você tem o erro. Faz distinção entre maiúsculas e minúsculas nesta programação. Agora, acabou. Mais tarde, você pode colocar algum valor nisso. Por exemplo, meu nome é igual a, você deve colocar uma corda nesta serra Você escreve, por exemplo, Jack. Se você tentar colocar um número nisso, por exemplo, 23, você tem erro, Y? Porque você não pode colocar um número dentro da string. Veja, você pode colocar esses 23 como texto dentro dessa variável, mas não como um número. Então eu pressiono Shift e este botão ao lado do inter e vou aqui e faço isso de novo. Isso é um texto. Não há problema em colocar um texto dentro da string, mas não um número. Deixe-me voltar meu nome. Mais uma dica, você pode colocar isso aqui ao declarar essa string Você não precisa usá-lo aqui. Você pode facilmente atribuir esse valor ao declarar a tabela de valores Mais uma coisa, oh thing. Dizia que isso é extra. O que isso significa? Isso significa que se você clicar aqui e clicar em remover. Ele remove a corda. Por quê? Como o cut ln entende que você coloca uma string nela e fornece o tipo de string para essa variável de nome por padrão, você não precisa dizer o que é. Mas às vezes você quer ser específico. Sobre o tipo de dados. Então, nesses momentos, você pode dizer exatamente qual tipo de dados deseja. Mesmo nessa situação, ele fornece o tipo de string do meu nome. Então, se eu disser que tenho meu nome, coloque um número nisso. Diz, não, não, não, não, não. Consideramos isso como uma string. Então você não pode colocar dentro dessa string, um número. Além disso, se você considerar isso como um texto, tudo bem, mas não uma string. Não é uma corda. Falamos muito sobre números. Deixe-me ter um número também. Ele é igual. Deixe-me ver. Eu tenho, H é igual a quê? 11. Além disso, você pode ter seu tipo de dados. O que significa int para inteiro? Dizia que você tem um erro y porque deveria colocar um grande. E também dizia, veja, você pode removê-lo. E se não, está tudo bem. número inteiro é como um, dois, três, quatro, cinco Você não tem menos de um neles. Por exemplo, 1,5, você não tem 1,5 nisso. Por exemplo, 111,4. Isso te dá erro. Qual é o problema? Você pode usar quatro duplos. Os números decimais, você não pode ter esse número por dentro e por dentro E como você pode ver, você pode entender por que às vezes devemos declarar qual é o nosso número Porque talvez não queiramos decimais e só queiramos int Nesses tempos, declaramos o que eu quero. O que nós queremos. Deixe-me removê-lo. E mais uma coisa, se eu disser que H é igual a 23, tudo bem. Eu repito isso muitas vezes e mudei muito. Mas em vez de R, eu digo, eu posso mudar isso. Basta dar o valor a essa variável uma vez, não mais. Essa é a diferença entre e. A diferença entre R e it é só isso. Eu vejo no próximo vídeo, 27. 006 dia 4.006 variáveis parte 2: Variáveis, parte dois. Deixe-me selecionar todos esses LED na primeira entrada. O tipo de dados é uma string e é igual a dois dados. E já que estamos cortando, não temos essa corda para você. Ele detecta qual é o tipo de dados , a menos que queiramos e precisemos Deixe-me remover isso e copiar isso. Coloque isso aqui. Este texto está dentro disso e esse é o nosso texto. Nossos dados vão para essa variável. Deixe-me fechar isso. Antes que eu esquecesse, eu deveria escrever isso em uma string Por quê? Porque quero ter certeza de que a sequência desse texto vai para minha primeira entrada de edição. Muitas vezes em muitos outros lugares. Devemos especificar para garantir que o tipo correto de dados vá para algum lugar. Só para ter certeza e não ter nenhum erro ou problema. Então, eu deveria copiar isso para aqui, e eu não tenho o primeiro, eu tenho o segundo copiar e colar, desculpe, colar. É o segundo valor e essa string também. O que essa corda dupla faz? Essa string twe vai aqui e pega a string dentro de cada uma delas e a coloca dentro da minha variável Mais uma coisa. Veja, temos uma corda. Não temos int, mesmo com um grande O, não precisamos inserir um int em uma string. Agora, vamos ter nossa terceira variável. O resultado do EDT é igual a quê. Copie isso, cole aqui, pessoal. Copie isso e cole aqui. Isso mais isso resultará. Por quê? Porque escrevemos código para PTN t. E agora? Agora, queremos esse resultado de DT, coloque isso dentro desta parte inferior. O que é isso? Este é o resultado do TC. Novamente, eu apenas copio isso e colo aqui. Altere essa parte para t x t result. Não me lembro, não é entrada de texto, é texto. É uma visualização de texto com grande T. Visualização de texto. Veja, isso é visualização de texto. Pressione o controle, clique aqui. Isso é resultado de texto e é uma visualização de texto. Então, o que vem a seguir? O próximo passo é fazer qual texto? O que devemos colocar dentro do texto? Resultado E T. O que é o resultado do DT? O resultado que armazenamos, vamos colocá-lo dentro desse texto. Ok, deixe-me executar o aplicativo e ver o problema. Assim, podemos aprender muitas outras coisas. Só para ter certeza, tenha cuidado com letras maiúsculas e minúsculas. É muito importante. Letras grandes e pequenas são a diferença no resfriamento. Vamos executar o aplicativo. Então, agora, se eu colocar três e colocar quatro, eu deveria ter três e quatro é igual Vamos adicioná-los. Você vê o número 37, T quatro, diz que é igual a 37 y. Vou te dizer por quê. Ele os considera como texto e coloca três e quatro lado a lado. Nem os números, nem como os números, como o texto. Primeiro três, depois quatro, junte-os, três, quatro. Porque você manda o computador fazer isso. De qualquer forma, como eu disse, esses são textos agora. Então, o que devo fazer? Esse texto, esse texto. Mesmo que façamos com uma string, porque são texto, o que devemos fazer? Então, agora, o que devemos fazer? Devemos dizer que queremos que isso seja inteiro. Então, D é o que você vê em uma string, larga, muito longa para int. Eu quero intentar. O segundo, você vê que diz, você tem aqui uma corda aqui. Resolva o problema para saber o que integrar. Nosso problema foi resolvido e temos isso como um número inteiro. Veja, edite o número inteiro do resultado. Nosso problema foi resolvido, mas espere, temos outro problema. Este texto é cantado. Mas temos essa informação. O que devemos fazer para resolver esse problema? Deixe-me resolver isso porque esse texto, pegue um texto, pegue uma string. D para uma string ou int, vai para a string, seja uma string e depois vai para dentro do resultado. Vamos revisar. Queremos um número inteiro, ponto para dentro, queremos um anel, ponto para um anel Agora vamos executar o aplicativo novamente. Eu coloquei três dentro disso, eu coloquei quatro dentro disso. Da última vez, vimos 34 porque o programa os juntou. Vamos apertar esse botão e então temos sete. Três mais quatro é igual a sete porque agora é número . Você vê? Também temos esses avisos. O que eles dizem? Eles dizem que você pode alterá-lo para all, porque você só coloca os dados uma vez dentro dessa variável. Então você pode usar. É opcional, não há problema com R, mas você pode usar. Eu os altero e você pode ver que os três avisos se tornam um. Eu resolvo esses três. Eu vejo no próximo vídeo, 28. Dia 4: funções: Funções. Uma função também conhecida como método, um segmento de código que é executado somente quando é invocado ou chamado de funções, pode receber dados, chamados de parâmetros Eles são usados para executar tarefas ou ações específicas. Crie uma função. Usamos a palavra-chave fun, como você pode ver, e como você pode ver no exemplo, chamar uma função para chamar uma função, escrevemos o nome da função seguido por dois parênteses como este seguido por dois parênteses OK. De volta à nossa programação. Escrevemos um código simples para pegar esse número e esse número quando pressionamos o botão de adição, adicioná-los e colocá-los nesta parte. Em nossa visualização de texto. Apenas essas poucas linhas de código. Agora, o problema. Não é bom escrevermos assim na aula principal e escrevermos tudo isso juntos. Se nosso programa se tornar um pouco maior, todos os códigos dentro uns dos outros e em um só lugar, podemos facilmente nos perder dentro de todos esses códigos e nosso programa pode, na maioria das vezes, ter muitos problemas e erros porque não conseguimos descobrir o que é o quê. Nós nos perdemos. Antes que eu esquecesse, temos essa função não criada Escrevemos nossos códigos dentro dessa parte não criada. Quando nossa atividade é criada, essas coisas acontecem. Você pode ver que até mesmo essa criação é uma função com essa palavra F U N, você pode ver que isso é uma função. Vamos criar uma função. Eu entro aqui. Eu escrevo f porque quero criar uma função, o nome da minha função. Nele, ouvintes. Este é o nome da minha função, abrir e fechar, e essa é minha função. Agora, o que devo fazer? Eu seleciono tudo isso até o final e controlo X, recorto, controle, colo 29. Dia 4: erros e logCat: Erros e log cat. Ok, vamos continuar. Minimize isso. Vamos executar o aplicativo novamente. Este é o nosso aplicativo. Eu insiro um número aqui. Eu coloco essa coisa em branco e pressiono esse botão de classe. O que acabou de acontecer? Meu aplicativo foi fechado devido a um erro, porque eu não coloquei nenhum número na minha segunda caixa de texto. Você vê esse logcat. Clique sobre isso. Você tem o logcat Torne isso um pouco maior. E você pode ver esse erro aqui. Você vê logo na parte inferior. Eu tenho essa exceção fatal. Lá, aqui. O que é isso? Esse é o meu erro. Eu tenho outras descrições, mas a principal e a mais importante, essa linha para essa string de entrada está vazia. Por quê? Porque nesse código, eu quero transformar essa string vazia em número inteiro Eu não tenho um zero. Eu tenho uma string vazia. Isso causa o erro. Mesmo assim, você tem esse erro em onde está a atividade principal, Cutlne 26 A linha 26 está aqui, a linha 26. Assim, você pode descobrir onde está exatamente o seu erro. Além disso, você pode ver nas classes do Android, por exemplo, em Java as coisas inteiras e outras coisas Mas como não queremos fazer nada com eles, apenas trabalhamos com nosso próprio código e corrigimos nosso próprio problema na linha 26. Que problema, esse problema? string de entrada está vazia. Dica extra. Você vê este pacote meu y pacote meu, porque eu só quero ver meu próprio pacote. Eu não quero ver outras coisas. Você pode pressionar o espaço de controle para ver a sugestão. Vamos pressionar o espaço de controle para ver outras sugestões. Ainda não precisamos de outras coisas. Você pode ver que todos eles estão aqui, pacotes ou outras coisas. Ainda não precisamos deles. A única coisa que precisamos é ver nosso próprio pacote. Pacote meu. Por quê? Porque eu só quero esse nome de pacote para ver o que aconteceu com isso. Se eu não escrever isso, talvez veja todas as outras coisas porque esse emulador tem outras coisas dentro Mas eu não preciso dessas coisas. Eu só quero meu próprio pacote. E antes que eu esqueça, vamos pressionar isso para adicionar para favorecer Talvez da próxima vez precisemos disso. De qualquer forma, agora entendemos o que acabou de acontecer. Vamos minimizar isso e ir aqui. Eu te dou outro exemplo. Pressione inter aqui. Veja, eu tenho, por exemplo, o quê? O número um é igual a quê? É igual, por exemplo, a 34. Isso é string. E quando eu quiser converter essa string em um número, tudo bem. Mas se estiver vazio, eu tenho um erro. Se for zero, tudo bem se estiver vazio, eu tenho um erro. Então eu tenho, por exemplo, 23? Está tudo bem Mesmo se eu colocar uma string depois disso, tenho um erro. Único número. Eu posso converter uma string em número, somente se eu tiver um número. Ok. Agora entendemos, qual é o problema? Vamos nos apegar a isso e continuar no próximo vídeo. 30. Dia 4: se for: E, você tem essa condição e algum código. Se a condição for verdadeira, seu código é executado e você tem e, se condição, esse código caso contrário, a condição não é verdadeira. Esse código. Por exemplo, você tem esse e para esse valor, a idade é igual Se tiver menos de 30 anos, você imprime menos de 30. Eu tenho menos de 30, esta peça funciona, imprimo 30 ou mais, mas eu não tenho menos de 30, esta peça funciona. Minha produção é menor que 30. De volta à codificação. Então , temos um problema. Vamos ver nosso aplicativo. Queremos verificar se essa peça tem número e essa peça tem número e, em seguida, executamos nosso código. Então, vamos ver se eles estão vazios ou não. Aqui, antes de executar nosso código, escrevemos que precisamos de uma condição. Se o que? Se forem utilitários de texto, precisamos de algo dos utilitários de texto Text utils é para Android. Precisamos do que? Precisamos que esteja vazio porque queremos verificar se a string está vazia ou não, está vazia. O que está vazio. Nossa primeira entrada EDT é t ou não. Vamos verificar isso. Ok, vamos por outro caminho. Primeiro, removemos isso e depois removemos isso. Isso é o que leva agora essa variável. Veja, parecia muito bem assim. Variável variável, o que, por exemplo, T é o que dit dit text é igual Porque podemos criar variáveis diferentes de cadeias de caracteres ou números. Podemos criar uma variável colocar o tipo de um objeto, como editar texto, e simplesmente colocar isso dentro dessa cópia e colagem. Colocamos isso dentro disso e, claro, entrada de texto, edição de texto. Está tudo bem. Você se lembra, não temos erros. Podemos escrever, editar texto ou inserir texto, editar texto. Vamos remover isso. Como eu disse, escrevemos o texto de edição dentro da variável. Assim, queremos usar o próprio texto. Obviamente, devemos escrever pontos, pontos, o que significa texto. Porque queremos verificar se o texto está vazio ou não. Deixe-me abrir e fechar isso e pressionar aí. Eu continuo com isso no próximo vídeo, porque quero mostrar coisas diferentes no próximo vídeo. Eu só quero separar isso 31. Dia 4: Propriedade EditText Error: É propriedade de erro de texto. Vamos continuar. Ok, primeira entrada do EDT. Temos essa primeira entrada. O que acabou de acontecer? Nesta primeira entrada, o texto está vazio. Então, o que devemos fazer? Você faz algo sobre isso porque está vazio. Erro de ponto. É um grande erro de propriedade. O que devemos mostrar dentro do erro é igual, obter texto. Receba uma mensagem de texto. G text qual ponto de recurso dentro da cadeia de caracteres do recurso. Olhe para as cordas, e depois? STR SCR. Tenho muitos SCRs, mas não tenho SCR para esse O que devo fazer? Eu escrevo o nome perfeito. Na entrada. primeira entrada, por favor, acho que é bom para as primeiras entrevistas Entrada. Por favor, erro. É opcional. Podemos escrever qualquer coisa assim. Então o que? Em seguida, devemos clicar aqui e clicar neste Light pub pulp e criar um recurso de valor de string para isso. Ok, vamos criar esse valor de string. Isso. Qual é o seu valor? Por favor, primeiro eu acho que o número é assim. E o cheque para o árabe também. Eu clico. Agora, o erro desapareceu porque eu tenho isso. Se eu abrir este projeto, vá para as cordas. Eu tenho cordas e cordas árabes, cordas. SCR na primeira entrada, por favor, erro. Por favor, insira o primeiro número. Dentro do árabe, por favor, em primeiro número. Veja, não há diferença. Por quê? Porque eu mesmo deveria traduzi-lo. Vamos esconder isso e perder isso e perder isso. Resumindo a história. Se estiver vazio, me dê algum erro, Whatr, esse texto. Vamos escrever outra coisa. Agora, entendemos o que é, mas de que outra forma? Essa condição não é verdadeira porque colocamos algum texto dentro dela. Então, ele executa o resto. Nós escrevemos outra coisa. Por outro lado, quero verificar a segunda entrada. Portanto, não é a primeira entrada. Desta vez, segunda entrada. Então eu apenas copio todo o controle C. Clique aqui. Controle. Desculpe, eu preciso de espaço. Se não estiver vazio, verifique novamente. E está vazio, é o primeiro, não o primeiro. Agora é hora de adivinhar. É, espaço de controle, segundo valor, texto. Se o segundo valor, o texto está vazio, então faça o que? É o primeiro, não o primeiro. Tenha cuidado. Você copia, mas deve alterar a parte desejada. Caso contrário, você não dá um erro, você pega o erro do aplicativo. O aplicativo não funciona exatamente como você deseja. O programa não apresenta erros, mas o aplicativo não funciona conforme o esperado. Portanto, tenha cuidado. Segundo valor. Finalmente, eu mudo esse versículo para pegar. Segundo, e diz: Bem, o que devemos fazer? Crie um recurso de valor de string. Posso usar esta lâmpada ou clicar aqui e ela diz: qual é o seu valor? Eu verifico o árabe também. Por favor, no segundo número eu pressiono essas notas, novamente, deixe-me verificar. Por favor, insira o segundo número. Esse é o primeiro número, é o segundo número. Por favor, insira o primeiro número, insira o segundo Como eu disse, devemos traduzir árabe ou qualquer outro idioma. Eu apenas escrevo em árabe como exemplo. Finalmente, L. O que mais fazer nesta parte, se a primeira entrada tem alguma coisa e a segunda entrada tem alguma coisa, tem alguma coisa, agora é hora de adicioná-las e colocar o resultado dentro da visualização de texto. Oh, eu tenho esse erro. Deixe-me corrigir esse ponto, ponto, quais são duas cordas. Depois entram duas. E, novamente, pontue em uma corda, depois dobre porque nossa entrada precisa de uma corda. Vamos aumentar isso. Clique aqui e aguarde. Ok, minimize isso e amplie, isso, e eu não insiro nada Eu só faço isso um pouco maior e clico aqui. Eu tenho esse erro. Eu clico nisso. Por favor, insira o primeiro número. Ah. Então, isso me diz o que devo fazer para resolver esse problema. Ele me mostra essa primeira entrada de string. Ok, 22. Além disso, outro erro. O que é outro erro? Por favor, insira o segundo número. OK. Você vê que isso me pega dentro de um segundo. Agora, o que devo fazer? Entre um número 22 mais um é igual Vamos pressionar plus e trava. Por quê? Porque temos um erro. Qual é o erro? Vamos abrir esse gato. Abra o L cat. Eu tenho isso e vou subir. O que diz isso? Diz que para a string de entrada, exceção de formato numérico. Para quê essa string de entrada? Qual é a string de entrada que você não pode trocar pelo número. Essa é nossa string de entrada. Isso não é um número. É texto. Por quê? Veja, este é o nosso texto, e ele não pode convertê-lo em número. Antes que eu esquecesse, você vê isso, você vê outra coisa aqui Mas eu não quero essas outras coisas. Eu posso simplesmente escrever. OK. Eu quero escrever um nível. Deixe-me pressionar o espaço de controle. Você vê? Espaço de controle. Ele me mostra esse guia. Eu quero escrever um nível. Idade é o nível da mensagem. Isso é nível. Internível. Nível, o que eu quero de erro. Ou eu posso pressionar o espaço de controle. Isso me mostra. Você tem o nível disso, isso, isso, isso e isso. Eu quero erro, em vez de digitar isso. Então, o que acabou de acontecer, erro de nível e erro de espaço e nível. O que isso mostra? Você vê? Só os erros. Nada mais, apenas os erros. Porque eu quero encontrar todos os erros. Eu simplifico as coisas. Especialmente quando você tem muitas mensagens e apenas uma coisa específica. Você vê? Eu digo pacote meu porque quero apenas meu pacote, e digo erro de nível porque só quero o erro do meu próprio pacote. E se você tiver muitos erros, botão direito do mouse e limpe. Infelizmente, ele limpa tudo isso e você executa o aplicativo novamente e faz exatamente isso para mostrar o erro Portanto, você não vê erros de 5 minutos, 10 minutos ou 1 hora atrás. A partir de agora, posso limpá-lo assim, clicar, limpar e acessar o aplicativo, fazer a coisa e cometer um erro exatamente nesse período de tempo. Outra coisa, como eu disse, você tem essa linha 33. Por quê? Porque você tem esse erro na linha 33. Não fazemos nada com os códigos Java. Nós temos essa parte. Trabalhamos com essa peça, linha 33. O que é a linha 33? Essa parte. Temos um erro nisso. Mesmo se eu estivesse aqui, estou aqui agora. Se eu clicar aqui, para a linha de corte 33 da atividade principal, a localização exata do meu erro. Sabemos o motivo. Conhecemos a linha. Qual é o problema? O problema é que convertemos a primeira entrada dessa edição em uma string O que é essa primeira entrada de edição? Isso é pressionar o controle e clicar. Isso é entrada de texto e edição de texto. Você converte isso em uma string e depois tenta convertê-lo em número. Então você não pode converter isso de um texto para o número. Você não pode convertê-lo y porque não é um valor, é um objeto. Então, eu entendo qual é o meu problema? Devo primeiro dizer que quero o texto dessa primeira entrada do DT. Em seguida, crie essa string de texto e, em seguida, transforme essa string em int. Então, isso é o mesmo. Primeiro, pegue o texto e, em seguida, transforme-o em uma string e, em seguida, transforme essa string em um número inteiro Espero que você entenda. Essa variável é um texto de edição. Esse é o problema. Mais uma coisa, posso usar isso com ponto inteiro Big i do valor dessa string, valor da string Deixe-me cortar isso e colocá-lo dentro disso e eu não preciso disso, eu faço essa string como um inteiro, assim É igual. Deixe-me colocar a crista aqui para que você possa ver que isso é igual a isso. OK. Eu posso até pressionar inter aqui, então eu o tenho na próxima linha Eu posso escrever diretamente ou posso usar o método Android para fazer isso. OK. Vamos executar o aplicativo. Mas primeiro, como eu disse, você vê o botão direito do mouse em Limpar como ca. Você limpa assim. E agora, se você tiver outro erro, você pode ver isso. Vamos executar o aplicativo. Eu tenho o primeiro número. Eu não coloco nada. Clique aqui, eu digo, por favor, interfira o número. Se eu colocar qualquer número, o erro desaparecerá. Essa propriedade de erro é muito boa. É para entrada de texto. Este texto de edição. Eu escrevo 22. Desapareceu, o erro desapareceu e eu pressionei mais, tive outro erro. Por quê? Porque está vazio. Eu escrevo um. Desapareceu. Eu pressiono esse padrão positivo e tenho esse 23 aqui. 22 mais um é igual a 23. 32. Dia 4: menos: Menos. Nós apenas usamos esses quatro PLS. Agora é sim quatro menos. A partir daqui, encontre V y ID. Vamos copiar isso. Controle C, controle Cer. Agora, copiei os códigos anteriores, exatamente os códigos anteriores. A primeira coisa é mudar PTN, não Pt n menos. Você vê essa parte, você tem a vantagem. Você não precisa do mais, você precisa do menos. É muito simples, é muito fácil. Vamos iniciar o aplicativo, executar o aplicativo, minimizar isso e escrever sete menos três e pressionar isso menos 47 menos três é igual Se você pressionar isso, mais é igual a dez, mas se menos for fácil quanto isso, você escreve o código negativo Acho que você pode dizer: por que não repetimos muitos desses códigos, por exemplo, esta primeira entrada editada e essa primeira entrada editada, temos muitas dessas coisas. Por que repetimos esses códigos? Por que os usamos muitas vezes? Sim, é claro, melhoramos nosso código, mas nas lições futuras. Por enquanto, eu simplesmente copio esse código, mudo esse nome e altero esse caractere e vejo como é fácil escrever código para o próximo botão . Nos próximos vídeos, acho que é o suficiente por hoje. Sim, talvez. Te vejo no dia seguinte. 33. Day4: questionário: Dia quatro, questionário. Pergunta número um. Como podemos criar uma linha no Android? Você pode anotar e depois responder. Como podemos criar uma linha no Android? Pergunta número dois, qual é a diferença entre margem e adição? Qual é a diferença entre margem e preenchimento? Pergunta número três. Qual é a utilidade do recurso a seguir? Texto de ferramentas. Qual é a utilidade do recurso a seguir? Texto de ferramentas. Pergunta número quatro, qual é o uso da função? Qual é o uso da função? É isso mesmo. Você pode anotar tudo isso e, ao responder, confira o primeiro vídeo no dia seguinte para comparar com suas próprias respostas. 34. Dia 5: Day4QuizAnswer: O quatro são respostas. Pergunta número um: como podemos criar uma linha no Android com uma visão de campo e largura ou altura limitadas? Como você se lembra, nós, por exemplo, fornecemos 23 dp de largura ou altura e podemos ter uma linha Pergunta número dois: qual é a diferença entre margem e preenchimento Acolchoamento, para espaço interno, marginal ou espaço externo. Você precisa de espaço ao redor, por exemplo, do botão, use a margem. Você precisa de um espaço para dentro. Você precisa usar preenchimento. Pergunta número três. Qual a utilidade do seguinte recurso, ferramentas de teste para o PLA, o conteúdo somente para o designer e não na versão de saída. Por exemplo, precisamos ver se colocarmos 20 dígitos lado a lado, quanto espaço isso ocupa Mas não queremos que 20 dígitos estejam em nossa saída ou mesmo em nosso emulador, somente quando estamos codificando Naquela época, usamos ferramentas de texto. Pergunta número quatro, qual é o uso da função? Código de agrupamento com o mesmo deus. Por exemplo, eu escrevo um monte de código para adicionar. Eu escrevo um monte de código para multiplicar. Eu escrevo um monte de código para qualquer outra coisa. Eu uso a função para agrupá-los. E como eu disse, quando você tem um programa de figuras, por exemplo, você tem milhares de linhas de codificação Então você usa muitas funções. Assim, você pode encontrar o grupo de código que precisa para editar ou corrigir os erros ou qualquer outra coisa. E mais uma coisa, acho que digo, se não, digo agora. Quando você usa um monte de código muitas vezes, é melhor usar a função. Por exemplo, imagine que você precise salvar algo antes de fechar o aplicativo. Você não escreve esse código de salvamento muitas vezes. Você escreve esse código uma vez em uma função com o nome próprio e sempre que quiser sair do aplicativo e salvar algum status ou algo assim. Use essa função. Espero que você goste e aprenda tudo isso. Caso contrário, revise o quarto dia. Se você aprender, bem-vindo ao quinto dia. Vamos aprender muitas outras coisas juntos. 35. Dia 5: reveja o que aprendemos até agora e alguma dica: Revisão e dicas. Vamos revisar. Criamos uma calculadora. Eu só quero ver o design disso e sim, assim. Esta é a nossa calculadora. Onde criamos nossa calculadora e dizemos o layout contém o que você vê nos recursos, no layout. O. Esta atividade principal contém as coisas que podemos ver. Quero dizer esta página ou essa visualização. Eu deveria dizer. Chamamos essas páginas de atividade e, na primeira lição, criamos esse projeto do zero em Catlin, sob o nome do nosso projeto, projetamos o nome do pacote Nós criamos essa atividade principal. Para essa atividade principal, criamos um layout. Falamos sobre as atividades em que cada atividade tem um layout. Essa parte tem o código, essa parte tem o design. Entendemos que esse XML contém nosso layout e falamos sobre como podemos ver a divisão do modo de design e/ou apenas o código. Falamos sobre layout restrito e também layout linear Parece uma linha y. Sejam os objetos dentro do layout linear, eles são orientados. Eles se juntam, aparecem juntos como uma linha vertical ou horizontal. Depois disso, criamos essas duas caixas para entrada de textos e esses botões. Falamos sobre esses materiais e por que usamos materiais. Dizemos que o próprio Google, o próprio Google introduz material. Porque os designs de materiais compensam, de certa forma, melhor. Como você se lembra, criamos esses botões e, como queremos que eles se alinhem, criamos esse layout linear e o tornamos horizontal. E também falamos sobre o peso porque queremos que nosso lado seja por peso. Também criamos uma linha com essa visão, criamos uma linha. Simplesmente fornecemos esse plano de fundo e uma altura para que possamos ter a linha neste lugar. Mencionamos que temos esse pano de fundo para essa visão. E também dizemos que temos esse plano de fundo para todos os outros objetos. Pelo menos a maioria deles. Por exemplo, podemos simplesmente copiar isso e pré-colar aqui. Você vê. Agora temos esse plano de fundo para essa visualização de texto como esta. Existem outras propriedades como esse plano de fundo, como preenchimento, como esse conjunto de ID de ódio, que são comuns entre a maioria dos objetos porque a maioria desses objetos tem essas propriedades E como você pode entender como usar esse ID, você pode usá-lo em outros objetos. Podemos chamá-las de propriedades comuns ou propriedades regulares. Também criamos essa visualização de texto e essa visualização de texto porque queremos ver o resultado final. Eu tenho algumas regras. Eu recomendo isso para as pessoas. Eu coloquei a identificação primeiro. Por exemplo, sagacidade e altura em seguida, e de baixo para cima no final. Eu recomendo que você escreva assim. É mais fácil encontrar coisas. Isso facilita muitas coisas. E eu faço isso de muitas outras maneiras. Você pode ver o ID primeiro e depois o Witt e a altura. quando eu quiser encontrar a identidade. Eu sempre sei, eu coloco a identidade primeiro. É muito útil. Ou a outra coisa, veja, eu tenho esses textos. Eu tenho esse primeiro controle de texto. Eu tenho esse texto. Vamos ver na sequência principal. Você vê que tudo isso tem esse STR, SCR SCR. Por quê? Porque é meu princípio. É minha regra. É mais fácil saber, é uma corda. E é mais fácil descobrir quando eu quero pesquisar isso, você não precisa, mas essas regras melhoram as coisas. E também, temos esse layout, como eu disse, temos esses valores, diamantes e Essa string é o idioma padrão e também adicionamos um idioma árabe. Você pode adicionar qualquer outro idioma ou pode ter um idioma padrão diferente. Nós o colocamos como padrão em inglês. Nosso idioma padrão, coloque-o em inglês. Eu apenas copio essas três linhas, cole-as no Gu translate e copio e colo os resultados dentro dessas três linhas. Por quê? Porque eu quero traduzir os outros. Isso é árabe. Não deveria ser inglês. Vamos fechar isso, vamos fechar. Uma nota externa, você pode até clicar nelas para isso ou até mesmo para essas. Tudo isso pode ser clicado. Mas, como você se lembra, acabamos de colocar esses botões. Na maioria das vezes, nós o usamos para os botões, mas você pode usá-lo para outras coisas. Como você pode se lembrar, para esse clique. Devemos definir esse botão, encontrá-lo e definir que k listen. Para encontrá-lo, usamos find V Y ID e encontramos esse botão. Meu botão é um botão de material. Devo definir qual é o meu objeto que vou encontrar. Onde está isso? Eu pressiono o controle. Clique sobre isso. Este é meu anúncio da TN. O que queremos fazer quando pressionamos esse botão, queremos adicionar isso com esse código, você pode ver, descobrimos cada um deles e os adicionamos com esse sinal de mais e os colocamos dentro desse resultado final Eu recomendo antes de começar a digitar, antes de começar a digitar, pense no que você quer fazer Por exemplo, primeiro, decido que quero adicionar essas coisas, depois começo a programar E conversamos, precisamos encontrar cada um deles, então usamos find view by ID para cada um deles. Primeira entrada n, segunda, e também verificamos, estão vazios? O outro está vazio? Se não, vamos executar o código. Também falamos sobre esse erro. Como podemos mostrar o erro? É o suficiente para a revisão. Vamos começar a programar e continuar o curso. 36. Dia 5: Gradle e encadernação parte 1: Gradel e veja a primeira parte da encadernação. Bem vindo de volta. Vamos ao código. Abra a atividade principal. Veja, temos muitas boas visualizações por identificação. Para encontrar o objeto. Eu deveria escrever tudo isso. Não há nenhuma solução mais fácil que nos ajude? Então, eu não preciso escrever essa bela visão, bela visualização por ID toda vez e procurar esse objeto. Existe uma maneira mais fácil. Para que serve a encadernação de visualizações. O que é vinculação de visualizações? A vinculação de visualizações ajuda você a não precisar escrever essas belas visualizações por IDs. Se eu quiser dizer que quero clicar nesse botão, não preciso escrever um código e isso facilita a localização do meu objeto. Primeiro, gradle. Essa é a parte do Gradle. Esse arquivo, você vê isso? Este segundo arquivo com esse nome. Tenha cuidado. Há o mesmo nome aqui, não aquele aplicativo de módulo, não aquele projeto, aplicativo de módulo. Vamos apenas abri-lo. Clique duas vezes. Abrimos isso. O que é esse gradle Se eu quiser usar temas e bibliotecas, primeiro, devo defini-los aqui Por exemplo, queremos usar a vinculação de visualização primeiro. Mas primeiro, devemos defini-lo, depois podemos usá-lo. Onde devemos fazer isso na seção Android de CDs Android. Abra isso. Vamos até aqui, inter, inter. Vamos escrever B. Eu escrevo apenas alguns caracteres desses recursos de construção, e isso me dá todas as coisas que começam com a compilação F. Mas tenha cuidado Se você escrever, por exemplo, O, não conseguirá mais encontrá-lo. Você pode usar o Android Studio Hell, mas não deve escrever nada de errado. Cuidado, abra e feche. Temos a ligação vi, e é igual ao que é verdadeiro. Y porque queremos usá-lo. Então, o que acontece? O que é essa luz? Sincronize agora, hein? Porque mudamos nosso gradiente. Devemos afundar todo o projeto. Então eu posso pressionar isso assim, pressionar isso e sincronizar agora ou na parte superior, você vê que diz sincronizar agora. Por que os arquivos gradle foram alterados. Portanto, você deve sincronizar, pressionar e esperar. Ok, é terminar de volta ao nosso código. Ok, vamos para o topo logo aqui. Então, o que devemos fazer? Vamos definir uma variável. Podemos usar ou. Nós usamos. Qual a diferença? Você deveria saber. Se for, podemos atribuir vários valores diferentes, mas apenas uma vez retira o valor de você Obviamente, se você esqueceu essas coisas, revise os vídeos anteriores Então, qual é o nome? Encadernação. Vinculação principal da atividade. Esse é um nome ou código importante? Por que é a atividade principal vinculativa? Porque My ML é a atividade principal. Então, eu quero que a atividade principal seja vinculada. Seja qual for o nome dessa coisa, minha ligação está com esse nome. Por exemplo, se for uma atividade sobre, eu deveria escrever uma atividade sobre encadernação. O que vem a seguir? Inflador Dot inflate Layout. OK. Eu tenho algum problema com isso na placa, e isso me dá um erro. Então, o que você deve fazer? Eu faço essa solução simples que acabei de fazer. Primeiro, vou a esse menu. Vá construir. Pressione, limpe o projeto. Limpe o projeto, pressione-o, espere até que ele termine e, em seguida, qual arquivo aparecerá até o fim. Em caches de validação. Por que demora cerca de 30 minutos, pelo menos para mim. E eu tenho que pesquisar outras coisas e fiquei confuso. Depois desses anos de codificação. Até eu. Portanto, tenha cuidado. Verifique todas essas três coisas. Se isso não puder te ajudar. Primeira vez que você invalida e reinicia. Você verifica isso. Verifique isso, verifique isso. Limpe tudo, invalide e reinicie. Na primeira vez, porque eu esqueci , pode ser porque eu esqueci Você não pode ter certeza. Talvez porque eu esqueci Confira esses três. Não tenho certeza de qual deles faz o trabalho. E invalide. De qualquer forma, não funciona. Eu verifico finalmente, eu verifico todos esses três. E primeiro, antes de tudo, eu reinicio meu sistema no final. Depois de reafirmar, eu faço tudo isso de novo. Primeiro, eu vim depois de reafirmar, reconstruir, desculpe. Kian Depois de Kian, vá. E invalide. E então eu acho que talvez isso possa ajudar a verificar esses três. Por quê? Porque isso limpa tudo. Até mesmo cache do sistema de arquivos. Ele limpa tudo, invalida e reinicia. Verifique, verifique, invalide a reinicialização e, em seguida, acabei reconstruir. Então eu vi isso. Onde está Está acabado. Tudo está bem agora. De qualquer forma, eu poderia tornar esta parte um pouco mais curta, porque eu levo pelo menos meia hora para descobrir o que está errado. Por favor, anote essas três etapas. É muito importante. Às vezes, até mesmo profissionais, programadores, cometem esses erros É um erro muito simples. Você vê? Eu repito um. Um erro simples. Você e diga: Ok, eu invalido, e você esqueceu, verifique-os e ficou confuso porque o erro não O que devo fazer? O que devo fazer? Não consigo encontrá-la. De qualquer forma, vamos continuar. Espero que isso ajude muito você, porque ajuda a mim e a muitas outras pessoas e a reiniciar. Não tenho certeza se talvez reiniciar possa ajudar. Se isso não ajudar, primeiro reinicie o computador e faça isso. E lembre-se, desculpe, lembre-se, você deve se conectar à Internet porque ela ocupa a biblioteca novamente. Eu quase esqueci de te dizer isso. É importante. Agora, onde estávamos? Ativamos nossa vinculação, e se eu pressionar control, veja, eu pressiono control e clico. Eu vou para a atividade principal. Controle de pressão. Onde está? Está aqui. Vou te mostrar uma coisa. Você vê esta atividade principal. Se eu pressionar o controle, clique em, venha aqui novamente. Então, é igual a essa história curta mais longa. Esta é minha atividade principal. Esta é minha camada, mas é vinculativa. Então, criamos uma variável que contém essa atividade feita. Defina a visualização do conteúdo, defina nossa visualização para esse código a partir desse recurso de layout porque nossa atividade contém duas partes: uma é esse código de contagem e duas Essa camada, essa visualização, o que as pessoas podem ver agora, queremos juntá-las, então dizemos definir a visualização de conteúdo para esse código. Por exemplo, vamos adicionar um novo layout e um arquivo de recurso de layout. Clique. Como devemos chamá-lo? Digamos que faça login, basta pressionar. Nós o adicionamos Vamos simplesmente adicionar um botão, botão e para aqui e isso e isso e isso para aqui. Você vê que pode fazer isso com o modo de design. Você vê aqui, código dividido de design. É design. Basta abrir esse botão comum, arrastar e soltar o botão e, assim conectar os pontos aos cantos E escrevemos código, porque é melhor porque é mais específico e eu prefiro isso. Mas depois do curso, depende de você, você pode usar isso. Eu prefiro escrever esses códigos. Talvez no futuro, no curso, eu faça o modo de design para que você possa ver mais sobre isso e decidir. Vamos ver a divisão. O que nós temos? Todos esses códigos. Agora, se eu quiser definir a visualização do conteúdo, por exemplo, fazer login, posso dar login a isso pressionar control e clicar para entrar. Por quê? Porque está registrando? Sem diferença. Podemos comentar isso. Você se lembra do comentário? O que é comentário? Quando eu comento um código, não o consideramos como código ativo. Nós apenas escrevemos isso para nós mesmos. Andre D Sudo não se importa com o que você escreve nesse código. Você pode escrever o que quiser. Até escreva estrelas, cascas, tudo o que quiser ou escreva Por exemplo, você pode escrever essa linha para fazer isso. Como eu disse, Andre D Sudio não executa os comentários. Ignore-os, como todas as outras linguagens de programação. Então, vamos dar uma olhada para ver o que temos. Eu executo o aplicativo. Isso me dá erro. Claro, por quê? O que acabou de acontecer? Você vê. Você deseja executar códigos e encontrar ID V Y que você não tem nesse login. De qualquer forma, longa história, breve comentário, e correndo novamente. Isso é o que temos. Este botão, e esta é a página de login. Pare o aplicativo. Eu faço tudo isso para mostrar o que essa visualização de conteúdo definida faz? Ele define nossa visualização do layout. Em vez disso, mostre-me isso e uma breve história para Ling, isso é o que eu quero ver. Vamos continuar com isso no próximo vídeo, para que não tenhamos vídeos muito longos. 37. Dia 5: Gradle e encadernação parte 2: Gradial e encadernação de visualização, segunda parte. Onde estávamos? Falamos sobre definir a visualização do conteúdo e o que ela faz? Vamos excluí-lo. Eu pressiono delete no meu teclado. Eu clico. Agora diz que não tenho nenhum login. Eu mudo isso para atividade principal. Agora vamos remover esse comentário, e queremos que essa visualização de conteúdo pegue os valores dessa associação que contém nossa atividade principal. Você se lembra da atividade principal encadernação? Vinculamos nossa atividade principal. A primeira coisa é cortar esse controle x e o intercontrole V, y Porque queremos usar isso dentro disso. Agora, dizemos que definimos esse controle C e dentro desse controle V. Você define a visualização do conteúdo a partir dessa associação. Você deve escrever declaração da sua variável antes do local em que deseja usá-la. Agora, escrevemos isso. Veja, se não abrir essa ajuda. Você pode, por exemplo, se eu clicar em outro lugar e voltar aqui, isso não me ajuda. Eu apenas pressiono o espaço de controle para abrir isso ou simplesmente escrevo qualquer letra para o que eu quero, por exemplo, eu escrevo R Y, porque eu quero root. Agora, em vez de fazer todas essas coisas, posso simplesmente escrever algo como encadernação. Encadernação interna PT N. Você se lembra por que escrevemos PT N antes dos botões? Agora eu tenho meus quatro botões. Se eu escrever outras coisas, por exemplo, basta adicionar, não consigo encontrá-las tão facilmente. Eu escrevo PTN antes dos nomes dos botões. Agora, quero encontrar todos os meus botões. Eu simplesmente escrevo PTN. Eu tenho a lista do meu botão. As regras, a estrutura da nomenclatura que eu lhe disse, há uma razão muito forte para usar essas regras É muito importante. Você pode ter sua própria regra, mas deve usá-la o tempo todo. Eu escrevo PTN. Então eu quero meu botão. PTN. Onde estão meus botões? Você tem esses quatro botões. E eu quero meu anúncio PTN. Eu só vou para baixo, para baixo, para o Inter. Anúncio PTN. Dentro desse anúncio da PTN, o que eu quero? Eu quero definir um ouvinte. É mais fácil do que encontrar a visualização por ID e outras coisas. Concordo, e eu escrevo meu código aqui. Nós o escrevemos em vez de todo esse código, simplesmente escrevemos uma vinculação e isso é um anúncio PTN, em vez de todos esses códigos, uma vinculação E, claro, depois disso, defina o ouvinte. Você pode dizer: por que não mostrei isso no primeiro, por que me preocupo em mostrar esse tipo de código Por que não escrevemos o código curto em vez disso? Porque você deve entender de que maneira você pode fazer as coisas e decidir, em uma determinada situação, qual é o melhor caminho. Você deveria aprender. Isso é fundamental. Isso é básico. Você deve aprender essas coisas com muito, muito cuidado. Por isso, conto tudo específico e com muitos detalhes e exemplos. Então, por favor, aprenda essas coisas com muito cuidado e muito bem. Deixe-me dar outro exemplo. Próxima linha, você tem. Encontre a vista, eu a movo aqui. OK. Encontre a visualização por ID. Entrada de texto, edição de texto e outras coisas. Todas essas coisas, quero meu primeiro valor de edição. Você se lembra de Editar primeiro valor Editar primeiro valor. O ID. É o nome desse objeto. Eu quero esse primeiro valor de DT. O que devo fazer? Em vez de tudo isso? Deixe-me te mostrar o vínculo D, D. Isso é muito bom E. Por que devemos escrever DT? Podemos usar qualquer coisa, mas se escrevermos D t no início do texto de edição, simplesmente os encontraremos. Este é o nosso texto de edição e simplesmente insira Este código é igual a isso Tudo isso se tornou simples e fácil. Como eu disse, você deve aprender das duas maneiras. Com muito cuidado, porque esse é o método encontrado, muito, muito importante. Antes que eu me esqueça, eu deveria remover esse comentário também. Esse é o meu método. Essa é minha função. OK. Vamos escrever a encadernação e substituir todas essas coisas. Vamos embora. Binding Bind D. O que acabou de acontecer? Eu disse que não conheço nenhuma ligação. Onde é vinculativo? Não sabemos encadernação. Você sabe o que acabou de acontecer? Declaramos nossa vinculação. Esta é nossa encadernação, e eles usam nossa encadernação, mas com o mesmo nome, você vê Controle C. Exatamente, eu apenas copio isso. Controle V, cole isso, mas não posso usá-lo aqui. O U diz que tenho a variável, a vinculação do nome. Você pode usar a encadernação, não antes disso. Você se lembra? Acabei de dizer que se você declarar essa vinculação, poderá usar antes dessa declaração Por causa disso, movemos essa linha de código daqui para cima para cima porque só queremos usá-la ao lado dela. Por favor, preste atenção, aprenda essas coisas muito bem. Elas são muito importantes. Todos esses são princípios básicos. Você deve saber todas essas coisas. Vou repetir isso. O que é isso? Val, val ou Va, declaramos nossa variável com isso Depois disso, o nome, dizemos o nome dessa variável de valor, desculpe, variável. O nome dessa variável é vinculativo. Então, depois disso, podemos usar essa ligação, e até mesmo a coisa dentro dessa ligação com ela. E depois disso, podemos dizer novamente, queremos usar essa ligação. E mesmo se abrirmos outro escopo nessa área, deixe-me dizer apenas uma área. Dentro da nova área aqui, podemos usar essa encadernação. Mas acima disso. Por exemplo, aqui, eu não posso usar essa ligação. Veja, se eu colar a encadernação aqui, simplesmente não declararemos isso Nós simplesmente não introduzimos isso. Então, ninguém sabe o que é isso. Devemos primeiro S, qual é a nossa ligação. OK. Assim, você vê a abertura aqui. Só aqui, sim, só aqui e você vê essa linha lá embaixo. Nós amamos aqui. Abra os violoncelos. Essa área. Dizemos que nossa ligação existe, mas somente nesta área, somente nesta área e depois dizemos ligação val nesta área e depois dessa ligação val, não antes. Quando fechamos a área, não podemos mais usar essa encadernação. Deixe-me dar mais um exemplo, digamos que, desta vez, R H é igual a 22, e eu digo, eu declaro minha variável, quero usar aqui. Eu posso fazer isso? Não, primeiro, isso está dentro disso e segundo, eu o uso antes da declaração. Mas se eu disser, essa variável aqui, está tudo bem. E, novamente, se minha idade sair da área, não há nenhum ego aqui. Ninguém sabe onde está a borda porque declaramos isso aqui. Então, para fechar isso. Temos uma função e podemos usar as coisas que declaramos dentro dessa função, somente dentro dessa função e das funções que estão dentro dessa função, não fora dela Antes que eu esquecesse, eu digo que declaramos função com f. Essa é a Vamos limpar isso e também isso. Deixe-me resolver esse problema no próximo vídeo. Então, nosso vídeo não ficou muito grande. 38. Dia 5: Gradle e encadernação parte 3: Gradial e encadernação de visualizações, parte três. Queremos resolver nosso problema. Devemos usar nossa variável globalmente. Variável global é uma variável com escopo global. Quero dizer que é visível em todo o programa. Ela tem muitos níveis e nós só queremos ver essa variável através das funções que precisamos. Deixe-me te mostrar. Como eu disse, se declararmos uma variável neste local, podemos acessá-la nessa área e, como a declaramos nesse local, podemos acessá-la nessa Então subimos aqui, pressionamos inter aqui, certo, nós o que todos os controles de vinculação C controlam V. E depois? Em seguida, o tipo. Quais são esses tipos de variáveis? O tipo é a ligação principal de sua atividade. Isso me dá um erro porque não atribuímos nenhum valor a essa variável e diz que você deveria dar a ela algum valor. Corrigimos isso da seguinte forma: que mark é igual a null. Acabei de dizer que você não precisava dar nenhum valor a essa variável. Apenas deixe isso. Eu sei que é a regra. Devo dar esse tipo de valor variável. Mas, por enquanto, deixe isso. Por causa disso, eu o considero nulo. Nulo não significa nada. Não é igual a zero. Não é um zero. Não é nada, absolutamente nada. Está vazio, não é um zero. U, não é igual a zero. Por que fizemos isso porque queremos dar esse valor, mas por dentro e por dentro, quando criamos nossa classe, queremos dar nosso valor a essa vinculação. Deixe-me mostrar, se eu quiser fazer isso, posso simplesmente controlar C e dar esse valor. Está tudo bem. Mas eu não quero que seja assim. Isso. Está tudo bem. Você vê. Eu quero não ser nada e depois quero dar um valor assim. No tl, é a regra. Queremos ter uma variável global. A variável global deve ter um valor. É a regra no gato. Essa linguagem tem essa raiz. Mas como não queremos, devemos fazer esse truque para esquecer por enquanto. O que? Lembre-se, você deve dar valor a essa coisa. Suponho que você me pergunte, você dá essa variável. Eu vejo isso. O que é isso? Por que você colocou um ponto de interrogação aqui? Veja, você deve dizer que minha variável pode ser nula ou não. Por padrão, não é possível. Mas adicionamos esse ponto de interrogação. Veja se eu removo isso e dou essa variável e null. Isso me dá erro. Mas se eu adicionar isso e disser, pode ser nulo. Está tudo bem Eu não tenho nenhum erro. Deixe-me dar outro exemplo. Porque queremos fazer esse primeiro projeto e os fundamentos básicos da melhor maneira possível Vamos. V, o que, dê um nome a ele. Isso é um nome. Diga o que. Por exemplo , deve ser uma string. Eu só digo, eu digo que é um anel e eu digo que é igual a nulo Mas eu tenho um problema. Você se lembrou de que deve escrever essas coisas com maiúscula ou ser. Sotlin diferencia maiúsculas de minúsculas. Portanto, você deve escrever S. maiúsculo Se você escrever um S pequeno, não é uma string. Apenas lembre-se. De qualquer forma, o que diz? Null pode ser um valor de uma string do tipo não nulo. H. O que devemos fazer? Dizemos que esse primeiro nome F pode ser nu. Está tudo bem Se não dissermos, é forte. Mas se dissermos que está tudo bem. Ok, vamos limpar isso e dar espaço, e dica extra. Você se lembra de dizermos que você pode pular o tipo de valor? Você não precisa dizer: o que essas coisas valorizam o tipo? Você se lembra? Mas, por precaução, você dá o valor a essa variável. O corte pode decidir qual é esse tipo de coisa. Por exemplo, se eu disser que nome F é igual a, até mesmo uma string vazia ou apenas um espaço ou alguns caracteres ou qualquer outra coisa Está tudo bem Mas quando queremos que seja nulo. Não, não está bem. Devemos dizer o que há nessas coisas no futuro. Mesmo se dermos números a essas coisas, ele reconheceu que é um número. Mas quando queremos atribuí-lo como nulo, ele pode reconhecer. Cotin é muito bom porque pode reconhecer que tipo de variável é essa Mas somente quando você dá algo a essa variável. Eu removo esse e mais um exemplo, como você pode ver, temos essa ligação e não precisávamos dizer que tipo de variável é essa porque imediatamente atribuímos valor a essa coisa. Diz que sim, é a atividade principal vinculativa. Resumindo, quando damos nulo, devemos definir o que é isso porque ele não pode decidir o que é nulo Então, como o definimos aqui, não precisamos desse val. E como dizemos val, podemos dar outro valor a essa variável de valor. Y? Porque usamos val. Você se lembra da diferença entre val ou V e V, pegue um valor. V pode ser reescrito várias vezes. Então, para corrigir isso, altere esse va para va. Continuaremos com isso no próximo vídeo. 39. Dia 5: Gradle e visualização, parte 4: Gradial e encadernação de vistas, parte quatro. Bem vindo de volta. Temos alguns erros, linha vermelha para esse erro. Você pode ver a descrição desse erro. O que diz isso? Eu digo? A variável que você definiu pode ser nula. Não é nulo. Definitivamente, não é nulo, mas pode ser nulo Porque nulo não é nada. Essa parte dizia: Eu não aceito nada. Você deveria fazer algo sobre isso. Você não pode me enviar algo que possa ser nada ou, como eu disse, nulo O que devemos fazer? Acabei de chegar aqui depois da encadernação, coloquei um e dois desse cartaz. Se você pressionar Shift e pressionar o número um no teclado, você terá o sinal. Acabei de escrever dois desses e o erro desapareceu. O que diz isso? Diga, deixe pra lá, ou simplesmente diga aquele erro, está tudo bem. Tenho certeza de que não é nulo. Por que eu faço isso? Porque tenho certeza de que forneço alguns dados. Não é mais nulo. Então eu posso dizer, deixe pra lá. Oh, acabamos de colocar dois pontos de exclamação. Acho que minha pronúncia está errada. Que ponto de exclamação, se bem me lembro, e o erro Por favor, me perdoe pelo meu baixo inglês. Temos mais dois desses. O que é isso? São apenas meus exemplos. Então eu removo isso e está tudo bem. Vamos continuar. Agora, você se lembra que acabamos de usar esse Y? Porque é uma bola pálida. Isso não acaba aqui. O que posso fazer com essa variável scallo ball, selecionar tudo isso Eu só digo, coloque uma coisa lá dentro. T t n. Eu tenho meus quatro botões. Em seguida, acrescente aquele que eu quero. Assim como antes de dizer, pode ser nulo Sua vinculação pode ser nula. Eu digo, tenho certeza que não é nulo. Deixe pra lá. Por que não é nulo Porque eu acabei de dizer que tem um valor. Eu dou o valor aqui. Só para você saber, seu programa vai de cima para baixo. O que isso significa? Essa linha está em execução, depois essa linha está em execução, depois dessa linha está em execução. Depois disso, essa linha está rodando, seja, temos o valor. Então, antes dessa linha, nossa função, damos o valor. Então não é. É sempre de cima para baixo até a linha inferior 21, depois disso, linha 22, depois 23 24. Está tudo bem Porque queremos aprender muito bem, deixe-me mostrar outra maneira. Podemos usar este ponto de interrogação e aqui, interrogação, também está tudo bem. Qual é a diferença? Uma via e uma segunda via. Nós temos duas maneiras. Qual é a diferença? Se colocarmos um ponto de interrogação, se for nulo, não haverá erro e simplesmente esqueça e deixe Apenas ignore isso. Sim, etc. Apenas ignore esse conjunto de códigos. Então, quando dizemos esse ponto de interrogação. Depois da variável, isso pode ser nulo. Onde está? Isso pode ser nulo Então, quero dizer, se não for nulo, faça o trabalho, execute o código, mas se for nulo, esqueça Portanto, não ignore nenhum erro. Então você se lembra, se você escrever isso, você terá um erro se for nulo Mas se for assim, você simplesmente esquece e ignora. O programa o ignora se for nulo, sem erro. Isso gera um erro e interrompe o programa, mas não gera erros e simplesmente ignora o código. Código inteiro daqui até lá embaixo. Ignore a coisa toda. Uma coisa é boa em você aprender com um programador que escreve outros Eu posso te dar um conselho. Eu te digo, é melhor algo assim. Eu te digo, é melhor. Você usa esse ponto de interrogação. Muitas vezes, eu uso esse ponto de interrogação em vez desse Y. Então, durante isso, se meus programas estiverem em execução, meu programa não trava E você entende o ponto. Se eu não escrever isso aqui, está tudo bem. Você diz se a vinculação é nula. Esqueça isso. Mas o BTN também pode ser nulo. Então eu digo, OK, se não for nulo, continue. Por causa disso, tenho dois pontos de interrogação, um para essa parte, outro para esta parte. Você pode perguntar: Ok, por que não escrevi esse ponto de interrogação aqui? Você vê que está tudo bem. Deixe-me removê-lo. Ok. Tem um erro. Agora, está tudo bem. Por quê? Porque eu quero que você veja a maneira diferente de fazer as coisas. É muito importante. Seu aprendizado é muito importante. E pela minha experiência, eu só uso esse tipo de ignorância. Quando eu simplesmente dou o valor. Você pode fazer isso de qualquer maneira em qualquer lugar a qualquer hora, mas eu uso esse tipo de tudo bem Então eu apenas coloco uma ou duas linhas antes de dar o valor. Tenho certeza que isso não é não. Mas nas outras vezes em outros lugares eu sempre uso o ponto de interrogação. Essa é minha experiência. Uma última coisa. Por que eu tenho tantas repetições sobre isso porque, claro, você tem, deixe-me ver, 66 linhas de código. Muitos deles estão lá, talvez 50 linhas de código. É realmente um projeto pequeno que fizemos, para que possamos te ensinar melhor. Mas imagine que, em vez de 66 linhas, você tem um grande projeto no futuro com 66.000 linhas Você gosta ou não. Você pode ter muitos desses problemas. Esse tipo de regra para seu próprio bem. Eles são muito importantes. Imagine que esse tipo de projeto tenha um erro e tudo dê errado. Siga essas regras importantes. Espero que você fique bem. Vamos continuar e ter muitas encadernações como essa. Eu apenas minimizo isso para ter uma visão melhor. Agora, aqui, encadernação, e o ponto de interrogação ptn menos e outro ponto de interrogação Assim, veja bem, é simples, simples e similar. Agora, aqui eu tenho isso. Deixe-me apenas comentar. Assim, você pode ver o ponto de encadernação, só para não perder e se confundir com o que devo escrever E no primeiro valor. D primeiro valor, D primeiro valor e, claro, nosso ponto de espera. F edite, segunda marca de encadernação , ponto ED, segundo valor. E nem precisamos colocá-lo em uma linha separada. Basta ir aqui e pressionar ou selecionar e remover. Por quê? Porque é um código muito menor e não precisamos criar linhas. Veja, repetimos continuamente a encadernação vinculativa. Encadernação aqui, encadernação aqui. Ou mesmo aqui, devemos escrever encadernação. Não há uma maneira melhor? Por favor, lembre-se de todas essas coisas. Mas lembre-se de que não há uma maneira melhor? Você deveria aprender tudo isso. Mas a partir daqui, temos essa pergunta. Então, o que eu posso fazer? Portanto, não preciso escrever tantas ligações, pontos de interrogação e muitas coisas Facilite as coisas. Vamos subir aqui. Agora, aqui, eu pressiono tap tap. Se você pressionar um espaço, você vai até lá, mas se estiver aqui, por exemplo, e pressionar tab, você pulará para a próxima seção. Na próxima seção, o que eu faço? Eu escrevo. Encontrando. O que vem a seguir? Ponto de interrogação. O que vem a seguir? Ponto. Essa é boa. Candidate-se. O que acabou de acontecer? Nós escrevemos este aplicativo. Este é um ótimo código de corte para Android C. Esse é um ótimo código que o estúdio Android em Catlin fornece para nós Vamos daqui para baixo. Controle x, volte aqui, controle e acompanhe. Isso me ajuda o fato de eu poder remover todas as ligações, como assim Apenas olhe. Este é o ponto de interrogação vinculativo vinculativo e o ponto de remoção. interrogação vinculativo remova o ponto de interrogação vinculativo. Deixe-me apenas comentar isso e controlar C e aqui controlar. Porque eu quero que você tenha os exemplos. Você também pode fazer isso em seu código, porque eu gostaria que você conhecesse todas as maneiras diferentes. Vamos continuar aqui, remova. Como você vê, não precisamos escrever Este ponto de interrogação, e é amarelo, y, porque eu apenas digo que essa ligação não é nula, execute este código O que é esse código? Todos esses códigos? Não preciso verificar novamente com esse ponto de interrogação. Se eu removê-lo, está tudo bem. Se eu removê-lo, está tudo bem. Não há mais pontos de interrogação aqui, se for nulo, nenhum desses códigos será executado Só tenho que escrever uma pergunta, Mark. Espero que você entenda tudo isso. Se não, por favor. Depois que esse vídeo terminar, revise este vídeo. Essas são dicas muito importantes. E se eu não escrever aqui, tudo isso é ruim. Eu tenho que executá-lo. Agora, vamos continuar. Temos esse resultado de texto. Basta clicar duas vezes e controlar. Eu quero substituí-lo. Selecione tudo isso e controle. Exatamente desse jeito. Você vê a segunda maneira? Eu apenas clico duas vezes em Control C, seleciono todos eles. Controle. Clique duas vezes no controle C, selecione tudo isso, controle e remova espaço porque não precisamos mais alinhar. É muito menor. Você vê como ficou curto como ficou melhor, ficou menor. Agora, aqui embaixo, controle duplo C e, claro, controle. Deixe-me torná-lo ainda melhor. Temos esse valor de Difers. Sim E se comentarmos isso e comentarmos isso? Primeiro valor, controle C, primeira entrada, primeira entrada e primeira entrada e segundo valor. Temos segundo valor, segundo valor, segundo valor? Não precisamos mais disso. Podemos simplesmente removê-los. E novamente, o primeiro valor aqui, aqui, aqui. É muito menor. Eu só posso copiar esse controle, x e ir até aqui no controle. Você tem o código aqui, então meu código não é muito grande. Eu o fecho novamente, classifico meu código, mesmo que eu possa copiar esses controles X e colocá-los aqui e não dou o valor do meu resultado. Mas eu continuo assim. Por quê? Porque eu acho que é mais legível É mais fácil de entender. Mas tudo bem se eu controlar isso e colocar aqui. Assim. Deixe-me mostrar, deixe-me mostrar o Controle C, e t xt resultado tx é igual. Devemos abrir assim e amarrar. Está tudo bem. O que eu prefiro é esse. Primeiro, eu coloco o resultado nessa variável de valor e depois disso, o valor na variável, eu o coloco em Takes the result. É mais fácil entender melhor. Vamos continuar com isso no próximo vídeo. Obrigada 40. Dia 5: codificando os outros buttons: Codificando os outros botões. Ok, onde estávamos? Vamos adicionar os outros dois botões. Copie o código inteiro. Como você vê, inter e control V. Qual é o nome? P t n, multiplique, o que mais você vê esse menos aqui Nós o mudamos para a estrela ou multiplicamos. Podemos selecioná-lo e copiá-lo ou podemos usar o código. Nós já copiamos. Inter Control V, ritmo mais um sinal negativo. O que é isso? P n. Temos quatro btn, btn, d, e o que deveria ser? Divisão, nós mudamos. Essa parte e essa parte. Também temos divisão. Vamos executar nosso aplicativo. Pressionamos esse botão entre, executamos o aplicativo. Nós esperamos. Nosso aplicativo acabou de ser lançado, demorou 6 segundos. Esconda isso porque é um aplicativo pequeno. Demorou apenas 6 segundos. Talvez aplicativos maiores levem 20 ou 30 segundos. OK. Vamos tentar ver o que temos. Se eu colocar sete e colocar dois, adicioná-los, o que eu tenho? Sete mais dois é igual a 97 menos dois, é igual a cinco, sete dividido por dois é igual 3.5 mas como temos números inteiros, não temos metade Então 3,5 é três. Acho que no futuro, também consertaremos isso. De qualquer forma, e multiplique sete, multiplique dois, sete, sete é igual Todos os nossos quatro botões estão bem. Ok, eu não tenho os sete. Eu digo mais. Insira o primeiro número, menos o primeiro número da divisão entre os primeiros números Ou se eu disser dois e disser multiplicar duas vezes dois é igual Mas se eu remover esses dois e disser multiplicar, por favor, no primeiro número Eu coloco quatro dentro disso e removo este. Verifique novamente, divisão, segundo número, um, divisão, quatro menos é igual a três I, três, mas se eu não tiver esse menos, por favor, no Funcionou muito bem. É bom. Funcionou muito bem. Paramos nosso projeto e, no próximo vídeo, tornamos ainda melhor. Apenas lembre-se. Nosso objetivo não é fazer essa calculadora. Nós apenas criamos essa calculadora para mostrar os fundamentos básicos, então aprenda muito bem 41. Dia 5: como retornar valores das funções: Retornando valores de funções. Vamos continuar. Temos esse anúncio da PTN e temos essa parte Portanto, verifique se há uma entrada vazia ou não. Se copiarmos isso, pressionarmos o controle F e colarmos, será colado para mim porque eu acabei de copiar De qualquer forma, vamos verificar. Temos exatamente o código exato aqui. Temos exatamente o código exato aqui. Temos exatamente o código exato aqui. O que acabou de acontecer? Eu tenho um, dois, três, quatro do mesmo código. É muito ruim, por quê? Como eu disse anteriormente, imagine, imagine que você tem 92 linhas de código aqui. Mas e se eu tiver 10.000, 50.000 ou até 100.000 linhas de código E então, se apenas repetirmos o mesmo código, não quatro vezes 100 vezes. Por exemplo, se imaginarmos que essas oito linhas de código, cinco linhas de código, são 5.000 linhas, 5.000 linhas de código, se repetirmos essas 5.000 linhas de código. Dez vezes temos 50.000 linhas de código. São 45.000 linhas de código sem motivo. E se quisermos mudar as coisas dentro desse código, temos que editar aqui, aqui. Existe uma maneira melhor? Então, mudamos o código em apenas um lugar e não precisamos alterá-lo. Mesmo que use 100 lugares, vamos a cada um deles e essas coisas exatas em 100 lugares. E se eu esquecer um ou dois desses 100 lugares, eu tenho um erro Então, não deveríamos. Não devemos repetir o mesmo código. Vamos usar a função. O que é função? É uma função. O que uma função faz? Função é um monte de código com o mesmo propósito. Por exemplo, essa função com esse nome, com essa diversão de apresentar nossa função, o trabalho dessa função é sentar e clicar em Listener Por causa disso, eu digo nele ouvintes. Então eu sei o que essa função faz? Você pode colocar qualquer nome, mas deve dar um nome à função. Que você possa entender o que essa função faz? Porque quando você tem mais funções, você pode ficar confuso. Nomeie-os com cuidado. Isso é muito importante. Vamos continuar. Vamos descer até aqui. Onde essa função se abre aqui e vamos continuar essa linha, essa linha, essa linha, essa linha, essa linha. Isso termina aqui. Você vê isso ali. Você vê isso. Deixe-me clicar novamente aqui aqui. Você vê aquela diversão lá em cima que aparece. Diz: Esta parte final é para essa função. Então, porque eu não quero iniciar uma função em outra função. Eu pressiono inter para fazer isso separadamente. É outra função. O que devo escrever? Função. Função, o que? O que nós queremos fazer? Não posso dar nenhum nome a isso. E assim mesmo. Aqui, essa é minha função. O que isso colore? Por que essa função deveria ser colorida em cinza? Porque você nunca o usa. Por causa disso, parece assim. Se você usá-lo em qualquer lugar, mesmo uma vez, está tudo bem. Por exemplo, veja, eu apenas copio isso, colo aqui e está tudo bem. Eu removo isso. Vamos continuar. Mas queremos tentar de outra forma. Criamos funções como essa. Queremos fazer de outra forma. Então eu removo isso. Vamos subir até aqui. Antes disso, pressione tab para a próxima linha, tab para a próxima linha, tab para a próxima linha, tab aqui. Deixe-me verificar novamente. O que esses códigos fazem? Eles verificam? Está vazio? Vamos dizer que não. Você vê um valor n t pequeno e maiúsculo y, B vai verificar isso vai verificar. É um valor vazio ou não? Valor Y, entradas. Puts não são entradas vazias. Então abra, feche. Basta pressionar Shift e o número nove e zero. O que diz isso? Digamos que você chama a função de entrada não vazia. Eu não conheço nenhum. Está certo, porque não definimos nenhuma, não são entradas vazias Acabamos de criar uma função, mas excluímos essa função porque queremos ver. Existe outra maneira? Sim, existe. O que queremos fazer aqui? Temos essa lâmpada. Se você clicar nele, temos a função de criação, não são entradas vazias E se clicarmos aqui, clique aqui e pressione inter. Pressione Alt e inter. Se pressionarmos Alt e inter, essas coisas se abrirão. Deixe-me tentar novamente, Alt e Inter. Essas coisas se abrem ou a lâmpada. Como você pode ver, sob esses direitos. Clique ou pressione tudo mais inter. Quando essa coisa abre, eu simplesmente clico nela e ela cria para mim. A função não é uma entrada vazia, é fácil, e até mesmo ela a escreve para fazer por mim porque eu deveria escrever alguns códigos dentro dela Isso é privado, então você não pode acessar essa função de outras classes. Isso é função. Então você pode chamá-lo dentro dessa classe muitas vezes, até centenas de vezes. Está tudo bem Esse é o nome dele e vamos continuar. Eu te falarei sobre essa parte mais tarde. Ok. Acabei de remover essa parte porque só quero começar a codificar. Então, vamos subir, subir, subir. Nós temos esses. Apenas controle C, eu apenas copio esses ou controle x, por que não? Desça, desça, desça, cole aqui. Não temos nossa vinculação. Vamos entrar aqui, pressionar inter e escrever interrogação vinculativo para aplicar, e tudo isso fica sob controle Aqui, controle o Inter. Vamos fechar isso novamente para ter certeza de que está funcionando bem. Isso. Como você sabe, acabamos de terminar nosso projeto. Nosso projeto funciona muito bem. Mas não pretendemos apenas criar uma calculadora. Queremos aprender outras coisas. Por causa disso, continuo codificando outras coisas para melhorar nosso código O que eu faço é verificar se está vazio, coloco alguns erros se estiver vazio, coloco algum erro. Agora, vamos subir aqui. Eu apenas controlo X e digo que se shift e nove controlam V, não é uma entrada vazia. Se não for uma entrada vazia. Eu verifico minha função para ver se está vazia ou não. Mas temos um problema. O que? Não é verdade, não é falso. Só funciona verdadeiro, tudo falso. Então, dentro disso, se eu deveria ter uma condição. Eu não tenho nenhuma condição, então temos um problema. Nós temos essa lâmpada. Eu pressiono nele. O que diz isso? Altere o tipo de retorno função de chamada para Boulan assim Isso quer fazer minha função, essa função. Como Boulan, essa função retorna branco, verdadeiro ou falso. Então, vamos subir e dizer: Ok, eu concordo. Vamos fazer com que seja Blean. O erro desapareceu. Desça até aqui. É Boulan Essa é a diferença. Embora minha função retorne Blean agora. Essa função fazer alguma coisa e retornar retorna o resultado. Eu tenho um erro aqui. O que diz isso? Precisamos de um retorno y porque ele deve retornar verdadeiro ou falso. Fulan pode ter dois valores: verdadeiro ou falso. Eu clico aqui e digo T, T, retorno False. Se chegarmos aqui, retornaremos falsos. Nosso erro desapareceu. Mas não devemos chegar aqui de cima para baixo. Por quê? Porque se há meu e, eu chego aqui depois de mais nada, eu deveria voltar por Just in here, eu deveria voltar para a verdade. Eu digo que está tudo bem. Então eu desço. Eu digo outra coisa, retorne T, não está vazio, não está vazio, então retorne verdadeiro. Qualquer outra coisa, retorne false. Então eu subo e digo, se essas coisas forem verdadeiras, faça o trabalho. Eu removo isso s, se for verdade, faço esse trabalho e o fecho novamente. Eu resolvo isso. Se isso for verdade, calcule. Eu faço isso com essa função. Eu acabei de copiar isso. Controle C, desça, selecione tudo isso. Pressa. Se for verdade, faça isso de novo, e de novo. Controle. Eu tenho zero resultados. Y Be, eu substituo tudo isso. Fechar d. Eu tenho um, dois, três e quatro chamando essa função. Eu chamo essa função quatro vezes. Em vez de repetir esse código quatro vezes, eu o escrevo uma vez e ligo para ele quatro vezes. Vamos executar nosso aplicativo para ver o que temos? Até aqui, eu só quero ver se está tudo bem. Pressione este botão de execução. Como eu já executo o aplicativo, basta executá-lo em menos de um segundo. Então eu apenas pressiono mais, por favor, insira o primeiro número Ah, funciona. Um. Se eu pressionar menos, insira um segundo número, um menos zero, cinco menos um é igual a quatro, que tal Cinco. E se eu eliminar esses cinco e multiplicar Por favor, em primeiro número. Sete, multiplique quatro, multiplique 28, tudo certo, pára, minimiza , e veja. Fazemos tudo isso com essa função, não precisamos escrevê-la quatro vezes pára, minimiza , e veja Fazemos tudo isso com essa função, não precisamos escrevê-la Portanto, temos vários códigos que fazem uma coisa única. O que é essa coisa única? Não é uma entrada vazia. O dobramento não é uma entrada vazia. Se retornarmos meios verdadeiros, não são entradas vazias Dizemos que verdadeiro significa sim. Se dissermos falso, significa não. Você se lembra se pressionamos o controle e eu quero ver qual é o primeiro valor do meu Dity. Clique. Novamente, pressione control e clique para ver o que é isso? Clique. Esse é o primeiro valor de edição, o primeiro texto de edição e retornamos o valor Por quê? Porque queremos voltar, o que acabou de acontecer? Qual é o resultado e é ouro. Então, é verdadeiro ou falso. Não é um número, não é uma string, verdadeiro ou falso. Você se lembra, se isso for verdade, não vamos até Eels, vamos pular. O que fazemos? O que acontece se pularmos? Desce aqui. Ela escapa de tudo isso. Então essa outra coisa não vai funcionar, então vamos atrás dela. O que ele tem? Falso. Por exemplo, se isso for verdade, não temos isso, falso. Se for verdade, não temos essa falsa. Mas se pudermos ir para o outro lado, volte à verdade. Se devolvermos alguma coisa, não vamos atrás. Se voltarmos aqui, não vamos atrás disso, não retornaremos falsos. Isso para aqui. Sempre que você devolve alguma coisa, você para lá e não desce. Por exemplo, aqui. Se eu escrever qualquer outra coisa, por exemplo, voltar para ro, isso me dá um aviso. Por quê? Porque isso nunca funciona. Você retorna falso, e isso nunca funciona. Veja, acessível, você não pode chegar lá porque você volta Sempre que você voltar, não vai mais longe. Simplesmente pare. Eu removo isso. Espero que você entenda isso bem. Assim como esse retorno, desse jeito, se for verdade, essas coisas correm e não vão para outra. E se essa vinculação for nula? Temos um ponto de interrogação. Então, tudo isso não será executado, retornamos arquivos e não cometeremos nenhum erro. Não temos nenhum erro. Já falamos sobre esse ponto de interrogação e o que ele faz? Deixa eu te mostrar mais uma coisa legal. Veja, para ter certeza de que você entendeu. Se você se lembra de que, se retornarmos, o restante desses códigos não será executado. Então, se voltarmos para, o que diz? Diz que os outros códigos não serão executados. O que você escreve em outras coisas? Se você retornar, outros códigos não serão executados. E se você ver , dizia código acessível Porque você os torna inacessíveis aqui. As paradas aqui. Você não tem nada de “se” ou “coisas”. Ele simplesmente corre e sempre pára aqui. Os outros códigos são inúteis. E para resolver o problema, basta fechá-lo novamente e mais uma coisa. Em vez de quatro vezes, escrevemos uma vez. Mesmo se quisermos usá-lo 1.000 vezes, tudo bem, mesmo que esse código em vez de dez linhas tenha 1.000 linhas. Está tudo bem Se você quiser usá-lo 100 vezes, não precisa escrever 100.000 linhas. Você escreve 1.000 linhas e as usa 100 vezes. E se você quiser mudar alguma coisa, o que, por exemplo? Por exemplo, você vê que só temos uma linha após o e. Nós podemos remover isso para abrir e ellos, remover, remover Em vez de remover isso quatro vezes no início deste vídeo, nós apenas o removemos aqui e em todas as outras. Não precisamos fazer isso, mesmo que o usemos 100 vezes, corrigimos em um lugar nesta função e em todos os lugares em que você chama essa função. Tudo bem, você não precisa mudar todos esses lugares. Acho que é o suficiente para esse vídeo. Não quero que demore tanto e espero que você entenda. Vamos continuar no próximo vídeo. 42. Dia 5: valores de entrada de uma função: Valores de entrada de uma função. Bem vindo de volta. Vamos subir. Nós temos essa entrada. O que são essas grades? Esses são os códigos que nunca usamos. Você vê essa coisa amarela. Isso é um aviso. Temos avisos. O que devemos fazer? Nós clicamos nele. O que diz isso? Importação não utilizada, importação não utilizada Temos quatro desses quatro ao lado do aviso, quatro deles, e aqui um, dois, três, quatro. Na linha, seis, sete, oito, nove, na linha seis, sete, oito, nove. Se você não vê isso, basta clicar aqui. Clique, clique em Clique, clique ou você pode minimizá-lo, ocultá-lo Minimize e clique em. E se em vez da linha seis, eu estivesse em outro lugar. Por exemplo, eu estou aqui, e isso é 1.000 linhas. Eu quero ver a linha sete. Acabei de clicar nisso. Sem um clique. Clique duas vezes sobre isso. Me leva para a linha sete, me leva para a linha oito, me leva para a linha nove, linha seis, sem mais nem menos. Então, o que devo fazer? Em vez disso, você nunca usa isso sem uso. Então, eu, por exemplo, linha sete, basta selecionar isso e remover com espaço no pacote, eu a removo O que acabou de acontecer? Eu só tenho a linha 68, nove. Eu só tenho três avisos, um deles sumido, feito Deixe-me fazer isso de novo com este. Esse também sumiu. Eu quero te mostrar outra maneira. Você vê essa lâmpada? Clique ou pressione A inter? Eu só clico aqui, eu apenas clico, otimizo as importações. O que devemos fazer? Vamos clicar nele e ver. Ele remove. Ele remove toda a importação não utilizada onde meus avisos foram Feito. É bom. Vamos continuar. criar outra função? Sim, claro. Por exemplo, adicionamos aqui. Nós apenas entramos lá e voltamos aqui. Eu disse, Adicione Ps. Por exemplo, não é bom. Deixe-me dizer números. É melhor. turno nove e não precisamos turno zero porque ele mesmo o adiciona. Então, eu quero criar essa função, dar a essa função dois números e ela me devolve o resultado. Adicione-os. Então eu apenas copio essa parte do Controle C, eu as divido com isso. É apenas o botão no meu teclado ao lado do M. Eu pressiono esse controle. Quero dizer, o próximo botão à direita M é esse para separar Obviamente, para o primeiro, controle, em vez do segundo valor, o primeiro valor do EDT Eu não faço isso com esse valor inteiro de. Você sabe as coisas, como elas funcionam? Eu apenas escrevo dessa forma para que você saiba. Você pode fazer as duas coisas com dot to int. Então eu posso remover isso e eu tenho esses números de anúncio. Uma forma de criar uma função é simplesmente escrever a função desta forma, clicar nela e clicar nessa luz b ou pressionar A mais inter e criar a função com o nome e os números Então , temos essa função. Qual é a diferença. Essa função recebe minhas entradas e me dá um resultado de retorno Veja, devolvemos Ban. Agora queremos retornar um número inteiro. Então, primeiro, eu tenho uma entrada. Eu apenas pressiono tab. Está em Outra guia. Segundo, entrada. Outra aba. Eu gostaria de permanecer em Outra guia. Você não pode escrever com um pequeno. Você não se envolve com um pequeno. Então você deve escrever P e T. Esses são importantes. Então, outra aba e pronto. Este é meu privado, então eu só posso acessá-lo de dentro dessa classe. Função. Portanto, é uma função. É um monte de código que eu escrevo apenas uma vez para um propósito específico e uso quantas vezes eu quiser. Qual é o nome? É o número do anúncio. Eu chamo isso. Eu o chamo de um número. Então eu sei o que isso faz? Tenha muito cuidado com a nomenclatura. Eu gostaria de escrever uma pequena letra no início e escolher uma letra maiúscula para cada palavra seguinte. Você pode fazer o que quiser, mas eu gosto desse jeito. O mesmo vale para os cordeiros variáveis, como você pode ver, eu escrevo com I. Você não pode escrevê-los com um pequeno É uma linguagem de programação com distinção entre maiúsculas e minúsculas Por causa disso, você tem que ter cuidado com isso. Eu não gosto de anúncios. Deixe-me dizer que é um tolo e, claro, eu tenho um erro aqui porque ele espera anúncios Então eu mudei isso também. É uma soma. Vamos voltar. Então, eu tenho números de toco Então eu apertei a tampa no próximo slide. Outro toque aqui, eu volto, devolvo, devolvo, o que? Primeira entrada. Claro, entrada P de segunda. É muito simples, uma linha de expressão. Eu só escrevo antes da devolução. Para torná-lo menor. Nem eu escrevo uma variável e declaro uma variável aqui para adicioná-la. Eu apenas os escrevo antes do retorno, e ele retorna o int. Feche-o novamente e remova-o. Você pode ver assim, retornos por retornos. Número inteiro e nós apenas esses números. Tenha cuidado ao escrever. Se quiser voltar, você deve voltar. Quando você escreve, isso deve retornar booleano, você deve retornar verdadeiro ou falso Você deve devolver Blean. Eu explico toda a função, então não vou repeti-la, mas tenha cuidado. Se você tiver apenas uma entrada, não precisará disso. Mas se você tiver mais de um, adicione isso. Este caractere está ao lado do M no seu teclado, escreva nele. Eu não mudo de posição, basta clicar em, pressionar o botão ao lado do M para escrever isso. Espero que seu teclado seja igual a mim. E você pode adicionar muitos outros. Se você pressionar aqui, poderá adicionar outra entrada que não precisamos. Vamos verificar mais uma vez, antes de criar a função, devemos saber o que queremos. Quero alguns números e quantas entradas temos? Eu tenho duas entradas. E o que nós queremos? Como eu disse, quero alguns Como o retornamos dessa função, eu nem preciso dessa variável. Deixe-me selecioná-lo e removê-lo. Selecione o Controle X, colado aqui e um inter aqui e remova esse Inter aqui, remova os valores Eu só quero organizar isso assim. Então, some o número, o primeiro valor, o segundo valor em uma string. Você vê como é bom e organizado isso e eu esclareço tudo isso, e até isso Isso é o quão pequeno isso pode ser. Verificar vazio é uma função. Em alguns casos, os números são uma função. Conhecemos nossa entrada e mostramos nossa saída no resultado do texto. Esse é o código completo para adicionar. Você vê como isso é fácil, pequeno e bem organizado. Então, se eu tenho um programa muito grande, se eu o organizo assim, tenho pouquíssimos erros. Sempre faça com que seja organizado. Deixe-me comparar isso com isso. Isso é muito melhor. Então, o que devo fazer? Eu simplesmente desço e digo: Vamos tentar isso mais uma vez. Eu não quero escrevê-los lá em cima. Eu só copio aqui. Intercontrole. Eu tenho outra soma, então eu não deveria escrever duas funções com o mesmo nome. Eu escrevo menos e é cinza y porque nunca o usamos. Também temos uma e duas entradas. Então, só queremos subtrair um do outro. Primeira entrada menos segunda entrada, sem mais nem menos. Mais uma vez, por que não entrar e controlar V? O que é isso? O que é isso? É a divisão D. O que temos aqui, divisão, primeira entrada, segunda entrada, divisão, eu não gosto de escrever tudo isso. Então, eu apenas copio. Se eu escrever lá, eu deveria definir o d, o d e outras coisas. Eu não gosto disso. Eu copio desde que escrevo aqui e colo, colo e altero. É muito mais fácil e eu gosto mais. Espero que você também. Não chame isso de preguiça. Isso é mais inteligente. Então, mais uma vez, intercontrole V e multiplique e tudo mesma mudança multiplique a primeira entrada e a segunda entrada Então, eu tenho três funções cinza porque nunca as uso. Vamos usá-los dentro do se daqui até aqui. O que eu tenho? Resultado do TX, e eu o organizo muito bem. Então eu apenas controlo C, e até mesmo aqui dentro do daqui até aqui. Controle o resultado do TC, alguns. Não, não é um pouco? Porque eu quero menos números. Confira. Não é mais cinza. Por quê? Porque eu o uso aqui. O próximo, remova aqui e dentro deste selecione esse controle, estamos muito, muito bem organizados, e isso é multiplicar e multiplicar números, excluir excluir E eu tenho isso. Mais uma vez vim aqui. Remova isso dentro do controle V e adivinhe? Divisão. Eu só não quero clicar em pressionar delete. Portanto, selecione essa verificação. Você vê o mesmo nome, tudo bem e essas coisas são usadas. Então, essas são minhas funções de código bem organizadas. Eu acredito que um bom aplicativo, um bom aplicativo Android, um bom programa Android é o programa que tem a menor linha de código. E muito organizado. Assim, você minimiza seus erros. Você pode, eu não posso torná-lo mais curto. Ou talvez, por exemplo, porque eu só tenho uma próxima linha depois de if, eu possa remover isso e isso. Por quê? Porque se você tiver uma linha depois, não poderá remover essa área, um localizador de área específico. Assim mesmo. Lembre-se de que não são quatro linhas. É uma linha. Eu acabei de entrar. Eu só pressiono inter. Se eu remover essa inter, toda nossa linha será nossa por causa disso Eu tenho essa linha e posso remover esses caracteres. E eu posso fazer isso aqui e aqui e aqui, cyli delete Mesmo agora, temos menos código. Deixe-me mostrar que é apenas uma linha, exclua e exclua, e assim por diante, exclua. Veja, é uma linha. Eu os coloquei um embaixo do outro para ficar mais claro, mas é só uma linha. O que vem a seguir? Lembre-se, se eu tiver outra coisa aqui, eu deveria colocar esses códigos dentro da área inicial e de fechamento. Se não, podemos considerar apenas a primeira linha, não o resto. Mas em uma linha está tudo bem. E quilos. Aqui, remova. E eu desço aqui com a tecla Shift para a direita e esse botão logo acima do Inter para classificar nosso código ou organizá-lo. Eu subo aqui e retiro isso também porque quero ter o mínimo de casaco para remover todos os extras. Isso é muito melhor. Sim, sim, é bom. Ainda temos esse aviso, mas não é um aviso importante. É um aviso fraco. Deixe-me te mostrar isso também. Por exemplo, diz que vinculação de propriedades pode ser privada na linha 11. É sobre isso que falamos. Eu apenas clico duas vezes nele e ele me leva para a linha 11. Ok, eu disse, torne-o privado. Então, de outra classe, você não pode alcançá-los. Parece razoável. Eu não quero, e é melhor não acessá-los de outra classe. Ok, eu aceito o aviso desta semana. Posso clicar neste botão de luz ou pressionar mais e torná-lo privado e privado. O que acabou de acontecer? Você não pode acessar essa vinculação de outra classe. Você pode acessá-lo de toda essa atividade principal, mas não de outro Klas E a linha 20? OK. Torne essa função privada também. Eu vim aqui ou mais, ligue para a Inter. Torne isso privado e eu não terei nenhum aviso. Esse é um ótimo código. Não tenho mais nenhum aviso. O que eu tenho aqui em vez desses avisos? Eu tenho esse lindo cheque verde. Eu adoro isso. Por quê? Porque quando eu tenho a marca verde, significa que não tenho nenhum problema dentro do meu código. Mesmo com os avisos fracos, eu cuidei deles. Se eu clicar nele, não tenho que ter esse cheque verde em suas aulas o tempo todo, tanto quanto você puder. Isso é muito bom. Tente ter esse cheque verde. No próximo vídeo, dou algumas dicas extras e análises muito rápidas sobre algumas coisas e dou dicas extras. Posso ter certeza de que não perderemos nenhuma coisa básica importante. Obrigado por assistir. Junte-se a mim no próximo vídeo. 43. Dia 5: dicas extras: Dicas extras. Vamos dar algumas dicas extras e uma análise rápida. Vamos revisar rapidamente e fechar o dia. OK. Criamos um projeto do zero e criamos a atividade para nossa codificação. Você deve se acostumar com a atividade porque tudo é atividade e você trabalha muito com ela. Como eu fiz isso? Basta clicar com o botão direito do mouse em Novo e depois em Atividade. E eu clico em atividade da MTV, assim. Acabei de te dizer, tenho essa atividade, mas também tenho um layout. Por quê? Porque eu deveria mostrar minhas coisas, meus dados sobre alguma coisa. Então, eu também tenho um layout. Ele deve estar com letras minúsculas e não deve ter um espaço no nome do layout. Veja, se eu pressionar espaço, diz que o nome do layout não está definido como um nome de recurso válido. Eu deleto isso. Está tudo bem. Big A também tem um problema. E se eu verificar essa atividade do lançador, essa atividade se tornou minha primeira atividade Quando eu inicio meu aplicativo. Essa atividade se mostra. Eu me tornei minha primeira página. Além disso, temos o idioma de origem selecionado. Carlin ou Java, usamos Catlin Toy Cotl porque o próprio Google recomendou, e é muito melhor do que o Eu acho que é melhor do que Java, então eu uso Catlin Ok, vamos cancelar isso com esse botão de cancelamento ou esse botão Klose De qualquer forma, eu tenho meus códigos dentro deste Catlin e java, e se eu quiser novos, eu clico com o botão direito neste lugar E meus layouts estão abaixo do recurso. F abaixo do layout. F. Esta é minha atividade principal. Andre Studio adiciona automaticamente minha atividade principal aqui e meu layout aqui Vamos visitar nosso layout, clique duas vezes. Esse é o meu layout. E minimize isso. Esse é o meu layout. Essa é minha parte visível do projeto. O que devemos fazer quando clicamos em algo ou em outras coisas? Não está aqui. Está em um arquivo de linha de corte. Mas aqui, nós apenas trabalhamos com a coisa visível. O que devemos mostrar e como organizar as coisas. Organize os objetos. Vamos ver o recorte no arquivo. O que devemos fazer, se alguma coisa acontecer em nossa visão? Se alguém clicar em algo ou qualquer outra coisa, como devemos trabalhar com dados na linguagem de corte Nesta atividade principal, recorte, decidimos esse tipo de coisa. Temos esse método de criação. Quando isso acontece quando essa atividade é iniciada, as criações são criadas. Deixe-me dizer. Ok, deixe-me voltar para nossa coisa visível. Temos esse primeiro número, segundo número. O que são esses? Estes são texto de entrada de texto para edição. O usuário pode inserir os dados dentro deles. Nós até fornecemos a eles o número do tipo de entrada. Também usamos material y porque o próprio Google recomenda esse Andrew Studio, recomendo isso. São mais agradáveis: entrada de texto, edição de texto com recursos extras. Em vez de texto normal e básico, insira texto. Veja, deixe-me ir aqui e escrever este texto de edição. Temos esse texto de edição simples, mas não o queremos porque é muito simples. Também podemos usá-lo. Eu não quero isso. Até eu os diferencio um do outro para que você possa ver que há muitas maneiras diferentes de conflitar esses textos de edição. Lembre-se de que esta é minha entrada de texto para editar o texto em que o usuário insere dados Mas eu também tenho esse layout de entrada de texto. Eu dou a isso outro tipo de dado e isso ajuda a melhorar a entrada de texto e editar o texto. Por exemplo, eu coloco dentro desse comprimento máximo, dez, ele adiciona isso, você vê esse zero em dez. Isso me dá uma coisa ainda mais bonita e mais poder para fazer minha entrada de texto editar melhor o texto. É minha coisa de layout. Mas os dados entram na entrada de texto e editam o texto. Resumindo, não consigo obter dados dentro do meu código Catlin nesses layouts de entrada Eu não posso fazer isso. Eu deveria retirá-lo da edição do primeiro valor. Eu não aguento isso daqui. Não confunda com isso. Essa é minha coisa visível e você não coloca dados dentro dela. Essa caixa de texto está aqui. Isso significa que essa coisa nem tem aquele texto. Deixe-me mostrar o Controle C, se eu colocá-lo aqui no primeiro valor. Essa coisa não tem esse texto. Portanto, entendemos que o usuário insere dados dentro desse texto de edição. Também temos esses botões, esses botões. Também usamos material para esses botões. Por quê? Porque é mais bonito e mais recomendado. Você pode fazer mais coisas com esses botões e ler o próprio estúdio recomendar isso e apresentá-los. Eu desenvolvo isso. Eu quero colocá-los em uma linha um com o outro. O que devo fazer? Eu uso o layout linear, esse layout linear. Porque eu quero mostrá-los juntos como uma linha. Eu os coloco juntos e digo que eles devem aparecer um com o outro horizontalmente assim Também podemos ficar na vertical, mas, nesse caso, precisamos da horizontal. Também atribuímos peso a cada botão para que cada um deles possa ter 25% do espaço de 100% desse espaço que o layout linear lhes oferece. Alguns dos layouts podem não suportar esse peso, mas o layout linear suporta o peso Só tenha cuidado. Você não pode usar todas as propriedades que vê em todos os lugares. O todo é um, e damos 25% a cada um desses quatro. Além disso, essa visualização de texto, o que é essa visualização de texto? Queremos mostrar dados. Também adicionamos essa visualização, ocultamos essa visualização porque queremos dar a ela duas alturas D e corresponder ao pai. O que é match parent? Todo o espaço no pai, e damos a altura dois D, e damos a cor preta. Portanto, temos uma linha com cor preta com a altura de dois DP com o w, match parent significa tudo Tanto quanto você pode dentro de seus pais porque não temos linha interna e no estúdio, usamos isso. Além disso, temos uma restrição de layout de baixo para cima. Dizemos que devemos mostrar isso no topo do rótulo de resultados do Txt. Adere ao rótulo de resultado Txt que vemos. E até você pode ver aquela seta que diz: Eu coloco minha parte inferior no topo desta. Também temos uma visualização de texto. Por quê? Porque queremos mostrar nosso resultado final dentro disso. Apresentamos as ferramentas e dizemos que elas não aparecem, mas não aparecem no resultado final mesmo no emulador, quando você as executa É só para você quando você cria o aplicativo. É para o programador e designer. Assim, você pode ver se você coloca 20 dígitos, por exemplo, isso é necessário para dentro do seu aplicativo De qualquer forma, dizemos que se quisermos acessar o botão ou outras coisas, primeiro devemos encontrá-los. Então, podemos dizer, eu quero trabalhar com esse objeto. Como fazemos isso? Chegamos ao código e dissemos : “Aqui embaixo, você pode fazer isso. Encontramos a visualização por ID e fornecemos o tipo de objeto. Por exemplo, insira texto, edite texto e, a partir das reservas , dos IDs, você fornece o ID e tem seu objeto. Também dissemos que isso tem muito código. Podemos tornar nosso código mais baixo, nossos programas menores, nossos códigos mais baixos. O que devemos fazer? Usamos a vinculação e definimos essa vinculação. Como você se lembra, antes de usarmos essa encadernação, viemos e dissemos que dentro deste berço aqui embaixo, ligação V é igual Podemos usar encadernação. Em seguida, dissemos o que é variável global e por que devemos usá-la global? E então, ao criar, atribuímos o valor a ela. Também falamos sobre trabalho nulo e nulo. Também dizemos que, como nossa atividade é atividade principal, temos essa atividade principal vinculativa. É baseado nesse nome. Por exemplo, se estiver registrando, temos vinculação de registro. E mesmo que pressione o controle e nesta atividade, a vinculação principal, clique nela. Consideramos nossa atividade principal porque é igual à que essa atividade pode. Temos esse campo de vinculação com esses dados e, em seguida, atribuímos essa associação à visualização de conteúdo do conjunto, porque queremos conectar essa atividade principal à exibição. O que eu quero da encadernação que acabamos de dizer que é preenchida pela atividade principal. Queremos a raiz. Queremos que a raiz dessa ligação se conecte à nossa atividade principal. Depois disso, temos esse ouvinte init. O que isso faz? Esta é uma função que é composta por todos os ouvintes. Colocamos todos eles dentro do innit listener dentro dessa função Também apresentamos o aplicativo. Diga também por que colocamos esse ponto de interrogação nessa variável nula Se for nulo, essa parte de aplicação que contém todo o código até aqui não é executada Não recebemos nenhum erro. Não teremos erros. Outra coisa boa é que não precisamos escrever um anúncio VPN vinculativo. Anúncio PN com ponto de interrogação vinculativo. Nós nos livramos dessa parte por todo esse BTN. Ponto de interrogação vinculativo. Não repetimos isso aqui aqui. É simplesmente muito melhor. Como resultado, podemos acessar diretamente esse anúncio BTN sem nenhum código extra Então dizemos set on click listener. O que está definido ao clicar em Ouvinte. Ele escuta até você clicar em algo. Então, quando você clica nesse botão, ele executa esse código. Por exemplo, esse é o meu botão. Eu quero fazer alguma coisa sempre que alguém clicar nela. Então eu digo sentar e clicar, ouvinte. Espere até que alguém clique nisso. Então eu tenho essa condição e isso se eu verificar se as entradas estão vazias ou não. Por quê? Porque se estiverem vazios, não posso adicioná-los. Como posso adicionar um número com uma coisa vazia? Uma coisa vazia, eu não posso fazer isso com mais ou menos ou divisão Como posso dividir um número em nada, mesmo que não seja zero em nada. Eu não posso fazer isso. Eu verifico se eles estão vazios. Também escrevemos uma função para qualquer poten que desejamos fazer alguma coisa Fornecemos nossa primeira e segunda entrada para entradas e colocamos o resultado dentro de ix result Por exemplo, deixe-me mostrar o número da soma. Pegamos a primeira entrada e a segunda entrada. Eles são moedas, adicione-as e depois devolva-as. Qual é o tipo dessa função que retorna. É int. Eu tenho int para minha saída e minhas entradas. Como eu disse, colocamos esses resultados em tixy result na propriedade desse resultado tixty, propriedade, temos um nome, o que significa texto, e temos que transformá-lo em string porque esse texto usa apenas uma string porque esse texto usa apenas Se quisermos dar a ele um número como esse, ele não aceita . Só uma corda. Como confitamos essa função e ela é muito boa, colocamos o nome próprio e os adicionamos, basta copiar e colar várias vezes Porque não queremos escrevê-lo novamente. Nós apenas mudamos isso e o nome, mesmo que não o nome inteiro, a primeira parte do nome. Por quê? Porque eu prefiro escrever menos código, fazer mais. Exatamente por isso, escrevemos funções para escrever menos código, fazer mais. Também aprendemos uma coisa muito boa. Esse cheque verde. Se houver algum problema, podemos corrigi-lo. Portanto, não temos nenhum problema, nem mesmo nossos problemas e, como resultado, quando todos os problemas são corrigidos, temos essa marca verde. Então, estamos em ótimas condições. Antes que eu esquecesse, também temos dentro desse recurso, mais do que layout Nós temos esses valores. O que temos dentro dela? Temos cores. Temos diamantes, então podemos dar uma quantidade de espaços ou outros diamantes nisso Por exemplo, se quisermos dar margem, colocamos dentro desses diamantes e depois a usamos Se quisermos mudar esse oito para nove, fazemos isso uma vez e em todos os lugares, de alguma forma, se parece com nossas funções. Nós mudamos um lugar e todos os outros lugares produzem o efeito. É a mesma coisa com as cores. Mudamos uma cor em um lugar e todos os lugares em que usamos essa cor mudam. Também temos essas cordas. Eles também são importantes. Temos a string padrão em inglês e não podemos ter outro idioma padrão. Meu idioma padrão é o inglês porque os ingleses ou meus alvos. Ou eu moro em um país inglês. Mas também os árabes podem usar meus aplicativos. Eu adiciono outro idioma árabe para o meu segundo idioma, ou até mesmo o francês. Minha segunda língua pode ser francês, pode ser russo, pode ser chinês. Por que eu uso o árabe? Porque os ingleses estão da esquerda para a direita e os árabes estão da direita para a esquerda. A diferença porque eles são diferentes. No futuro, posso te ensinar um pouco mais com isso da esquerda para a direita e da direita para a esquerda. Eu até considero isso. E em todos os lugares, toda vez que quero escrever alguma coisa, eu uso isso, mesmo que eu queira escrever isso, além disso, eu uso SCR. Então, se eu quiser mudar esse texto, eu o mudo aqui, em todos os lugares em que eu uso essa mudança de texto. Não preciso verificar em todos os lugares para ver. Ok, eu escrevo uma carta errada. Vamos pesquisar todo o aplicativo em todo o aplicativo para ver. Ok, eu escrevo apenas uma carta certa ou errada. Eu entrego ao tradutor da minha empresa o texto inteiro. Então, ele ou ela verifica se isso está certo ou errado e compara com o texto em inglês. Essas dicas muito profissionais, dicas muito profissionais. Por causa disso, por favor. Esses primeiros dias são muito importantes. Você deve aprendê-los com muito cuidado. Se você não entender alguns deles , repita esses vídeos. Eu forneço o máximo possível de exemplos para que você possa entendê-los bem. Seu aprendizado é uma coisa muito importante. Simplesmente porque você me escolheu para te ensinar. Por causa disso, sou responsável. Eu tento te ensinar bem. Espero que você aprenda bem essas coisas. Outra coisa, deixe-me mostrar esse manifesto. Este é meu manifesto. Essa é a identidade do meu aplicativo. Isso é o que meu aplicativo é. Por exemplo, o que é o ícone do meu aplicativo? Até minha equipe, qual é a minha equipe? Qual é minha API de destino? Todos os dados importantes, como carteira de identidade que você tem, estão aqui. Não vou mais explicar isso. E você sabe cada atividade que você tem, você tem uma atividade aqui e outros dados estão aqui. No próximo vídeo, temos um pequeno questionário e o encerramos hoje 44. Dia 5: Day5Quiz: Página cinco, perguntas do questionário. Como faço para ativar a vinculação de visualizações? Pergunta um. Como faço para ativar a vinculação de visualizações? Pergunta dois. O que é uma variável global? Se for muito rápido para você, você pode pausar o vídeo e escrever sua resposta No próximo vídeo, você verifica suas respostas de qualquer maneira. O que é uma variação global? Pergunta três: Como receber informações do usuário em função. Como receber informações do usuário em função. No próximo vídeo, você pode conferir as respostas. Obrigada. 45. Dia 6: Day5QuizAnswers: Respostas do questionário do quinto dia. Primeira pergunta: como faço para ativar a vinculação de visualizações? Veja, você acabou de ir para este nível de construção C T S. Não, isso termina com o projeto. Aquele com módulo, e dentro dele, você adiciona imagens construídas dentro do qual você adiciona vinculação de visualização é igual a verdadeiro desse jeito Pergunta dois, o que é uma variável global? São variáveis criadas fora de uma função. Por quê? Porque podemos acessar essas variáveis a partir de qualquer função dentro dessa classe. Temos até variáveis que também podem ser acessadas de outras classes. Nós chegamos até eles. Acho que em cursos futuros, talvez depois dos 20 ou 30 anos, alcancemos esse tipo de variável. Pergunta três: como receber informações do usuário na função. Assim como aquela primeira entrada. Segunda entrada, o tipo está dentro, o tipo está dentro, e a saída, exatamente assim, a saída está dentro, e retornamos a saída, assim, etapa quatro, Primeira entrada mais, segunda entrada. Essa é a nossa saída. 46. Dia 6: valor decimal: Valor decimal. Bem-vindo de volta. Este é nosso último dia de nível muito básico. Vamos acelerar o aumento. Olá, isso. Colocamos 83 e mais oito mais três é igual a 11 menos oito menos três é igual a cinco, e multiplicamos oito, multiplicamos três é igual e multiplicamos oito, multiplicamos H nessa divisão, pressione dois, mas dois multiplicado por três é igual a seis Eu não tenho a parte decimal. Veja, se eu inserir sete, eu tenho dois, eu apenas inicio este aplicativo e agora eu paro este aplicativo. Minimize isso. Meu código está aqui. Eu tenho essas quatro funções, para cerca de quatro menos para divisão e para multiplicação Na divisão, tenho dois números, primeira entrada, segunda entrada. Eles são inteiros e minha saída também é inteira. Eu os divido entre si e meu resultado é inteiro , como podemos ver Então eu não tenho nenhum ponto decimal. E eu não tenho nenhum número decimal nos meus resultados. Explicamos diferentes tipos de variáveis. Por exemplo, R A é uma string, é uma string. É texto, R p é igual a inteiro. Como um, dois, três, ele pode armazenar números. E, claro, R, C, o que é? Pode ser verdadeiro ou falso. Até devolvemos a proibição em uma de nossas funções, você pode ver. O que mais eu também tenho variável d é igual a pés e variável é igual Esses dois são decimais? Pode ter, por exemplo, 2,5, 3,5, 3,6, você pode classificar números decimais em Vamos dar a eles alguns valores para uma string Eu pressionei iguais. Eu pressiono shift e o botão ao lado do inter para escrever esse personagem e Androuo, escrevo o outro para fechar para Eu apenas escrevo um BC ou um número ou o nome. Isso é uma string. O número. Eu posso dar dois, 23 ou 234. Esse é o número inteiro. B. Eu posso dizer que isso é verdadeiro ou falso. Eu digo que é verdade. Quando usamos a proibição? Quando queremos dizer algo é sim ou não para forçar. Quando devemos dizer sim ou não para forçar, por exemplo, em nossa função, veja, queremos dizer que não está vazia, sim ou não. Usamos ban. Que tal, amigo, podemos dar madeira decimal, por exemplo, 3,40 Isso me dá um erro porque se você quiser dar madeira decimal a uma variável de gordura, você deve colocar um F no final Apenas lembre-se. Ok, o que mais eu tenho em dobro? Vamos dar esse número também. 3.14 F. Isso me dá erro. Y? Porque eu não deveria colocar um F. Coloque um F no final de um número duplo. Remova-o. Está tudo bem. Mas no final de um número de carga, eu coloco F. Espero que você entenda tudo isso. Muito bem. Vamos fechá-lo novamente, deslocar e colocar a parte inferior na parte superior da inter É classificar nosso código para nós. Deixe-me verificar o que aconteceu se eu disser 0,2. Não consigo colocar uma madeira decimal em uma Isso me dá erro, então eu o removo. Mais uma coisa. Você tem uma corda aqui. Você pode escrever um, dois, três, quatro. Você escreve um número, mas é uma string. Se você escrever AAA, tudo bem. Por quê? Porque é corda? Agora, se eu pressionar inter e disser A a int. Está tudo bem. Eu posso transformar meu A em um int. Y, porque eu coloquei um inteiro dentro disso. Mais uma coisa, podemos dizer um, dois, três, quatro, cinco, 67890 Novamente, um para o que aconteceu Diz que seu número é muito grande. Você não pode colocar tanto número dentro de um inteiro. Há outra variável sobre a qual falaremos nas aulas futuras. Mas, por enquanto, usamos int e você deve saber que há uma limitação de que você pode colocar número dentro de qualquer dado interno, em qualquer variável. Por exemplo, vamos matar esses. Você vê dez dígitos. Se você colocar dez dígitos dentro e dentro, tudo bem. E, claro, acho que cerca de 2 bilhões. Não, não. Mesmo isso, você não pode menos do que isso. Acho que nos slides das aulas anteriores, falamos sobre a limitação, a limitação exata. Mas como você pode ver, se você negociar é um desses e até você colocar nove. Para começar, tudo bem, então eu deveria entender que, se eu quiser usá-lo, devo maximizar, por exemplo, máximo de 999 milhões é meu número máximo que posso colocar nisso para obter mais, é melhor usar uma variável maior É claro que pode custar 1 bilhão ou mais, mas é melhor não usá-lo em tantos números E tente não quebrar as limitações. Não estamos falando sobre o futuro longo em vez de sobre o futuro, falamos sobre isso, mas não por enquanto, esse tipo de variável para o futuro. Mais uma coisa, se eu escrever dentro dessa string, A B C, mas eu disser ponto para encontrar, tenho erro ou y porque não é um número. Eu deveria ter cuidado. O que eu quero escalar para quê? Eu deveria apenas converter meu número em número dessa string ou de qualquer outra coisa. Deixe-me tentar mais uma coisa. Posso dar esse carro alegórico? Por exemplo, apenas o número três, um número inteiro? Não, eu não posso. Eu deveria dar. Flutuar. Deixe-me apenas comentar isso, comente isso. Comente tudo isso. Então, quando você vê a fonte, pode conferi-la. De qualquer forma, eu não quero tinta. Você se lembra do nosso problema? Eu quero flutuar. Quero fluxo para minha saída. Eu tenho um erro. O que acabou de acontecer? Dizia que você tem d, você tem em, você divide até o final, e o resultado está dentro. Como resultado, você não pode ter sangue. Esse é o nosso erro. Ok, deixe-me dar uma olhada. Você não pode se converter em quando eles estão divididos entre si por um companheiro, então deixe-me fazer isso. Dt Two fluiu Agora, se um dos números for seguido, tudo bem. Nosso resultado é seguido. Claro, veja bem, o problema está resolvido, mas só para ter certeza de que posso escrever dois fluxos. Mas até mesmo um deles é. Vamos acelerar o aumento. Estou esperando. Agora, o que eu tenho? Oito divisão T, dois pontos D seis e sete. Cortando o último número para cima y porque esse seis está mais próximo de 10220 Por causa disso, faz com que o sete passe do próximo número para sete, não cinco. Essas chamadas se resumem. É claro que, como estamos em um nível muito iniciante, eu não deveria contar isso Ok, vamos pular essa coisa. De qualquer forma, temos nosso resultado decimal. Deixe-me verificar outra coisa. 5.2 e versão 2.5, simplesmente deixe-me verificar uma coisa. Eu tenho oito, dois, três e divisão, eu tenho esse número um, dois, três, quatro, cinco, dois, três, quatro, cinco, seis, sete depois do ponto. Sete números depois do ponto. Pare. Então, eu tenho sete números comuns depois do ponto. Agora, eu quero verificar, que tal o dobro? Porque eu quero ver qual é a diferença entre flutuar e dobrar Eu seleciono isso. Eu escrevo duas vezes e, claro, para inundar duas vezes Mesmo que um deles seja duplo, tudo bem. Isso te dá o dobro. Mas eu quero ter certeza de que dobrar dois duplos e a saída será dupla. Lembre-se de que, se você tiver dois fd, não poderá ter a saída como dupla por causa disso, coloquei um deles pelo menos o dobro. De qualquer forma, apostamos em dobro para os dois. De qualquer forma, vamos executar o aplicativo. Estou esperando. Está funcionando, e se eu disser cinco, e eu disser duas divisões, eu ainda tenho 2,5, sem diferença. Mas se eu disser 83 e divisão, vejo a diferença Deixe-me ver isso bem mais de perto. Vamos contar um, dois, três, quatro, cinco, 67. Ok, oito, nove, dez, 11, 12, 13, 14, 15, 16 16. Em vez do número sete depois desse ponto, eu tenho o número 16. Depois desse ponto para D Simar. Então, o dobro tem mais capacidade e é mais específico. Portanto, precisamos de resultados mais específicos e precisos. Usamos o dobro. Mas quando não precisamos de muita precisão, podemos usar o colega. Em nossa calculadora, é uma calculadora muito simples. Então, usamos outro flutuador para fluir, para fluir porque não precisamos de muita precisão É claro. OK. algumas pequenas coisas no próximo vídeo. Porque queremos terminar o nível iniciante hoje. Talvez tenhamos a saída do APK e talvez fechemos o teclado e outras coisas. E então fechamos nível iniciante e começamos o nível iniciante Eu tento, tanto quanto posso, explicar detalhes muito pequenos nesse nível em alguns primeiros dias. Então você tem conhecimento básico e fundamental do programa. Então, no futuro e no dia seguinte, você tem o mínimo possível de problemas, o mínimo possível mínimo possível e eu tenho um bom começo para essa jornada de programação. Obrigado pela sua atenção. Continuamos até o próximo vídeo. 47. Dia 6: exportação de apk e dicas part1: Exporte o APK e as dicas, parte um. Bem-vindo de volta. Vamos dar algumas dicas extras e aprender algumas novidades. Até agora, usamos o emulator Press App e vimos nosso aplicativo Mas podemos criar um APK? Sim, claro, vá para o menu de construção. Crie um case Bundles AP. Você vê isso à direita. Você tem duas opções. Acabei de pressionar build AP case. Isso é construir meu APK. Estou esperando que termine. Meu APK foi compilado com sucesso e, se eu pressionar localizar, posso ver a localização do meu APK. Vamos continuar. Eu apenas clico aqui e clico em localizar e vejo Esta pasta abrir pasta de depuração Eu tenho esse arquivo APK. Lembre-se de que, dessa forma, eu tenho um APK de depuração Não é um lançamento. O que é um lançamento? Falaremos sobre o resultado do lançamento nas próximas aulas. Mas, por enquanto, você pode facilmente e sem etapas muito complicadas, ter um APK e instalá-lo em seu telefone Basta copiar isso no seu telefone, abri-lo e pressionar um pino. Você pode usar esse APK. Obviamente, se precisar, você deve ativar a permissão para instalar APCs de depuração em seu telefone Depende do seu telefone e da sua versão do Android. A versão Android do seu telefone. Você pode encontrar tutoriais para fazer isso na Internet. Então lembre-se, não é para, por exemplo, jogar em uma loja ou em outras lojas. É apenas para depuração em seu próprio telefone. Então, como fazemos isso? Basta clicar no menu, ir para o menu de construção. Crie um pacote de APKs e nós criamos um Se tivermos um erro, falhamos em fazer isso. Mas como não temos nenhum erro, podemos fazer isso e ter nosso arquivo. Dizemos que falamos sobre lançamento no futuro, mas só para você saber, lançamento para lançar seu aplicativo nas lojas, por exemplo, na Google Play Store Vamos executar o aplicativo novamente. Pressione correr e espere. Se eu clicar aqui, eu tenho esse teclado. Um, dois. Se eu clicar aqui dois, eu tenho esse teclado também. Vamos pressionar plus. Este teclado é um selo aqui. Isso é um problema. Você vê o problema? Eu deveria pressionar esta verificação para fechá-la. É melhor trocar esses botões. Então, se eu pressionar qualquer um deles, clicar em qualquer um desses botões, meu teclado fecha automaticamente. Então eu não vi isso. Parece que acabei de pressionar isso. Se eu pressionar qualquer um deles, ele deve fazer assim, fechá-lo. Vamos parar com isso e minimizar isso. E eu falo sobre isso. Se você tiver algum erro, não poderá retirá-lo. Deixe-me te mostrar isso. Por exemplo, se eu tiver um espaço aqui, tenho um erro nessa linha. Você vê vermelho, vermelho, vermelho. Eu tenho um erro aqui. Ok, então porque eu tenho um erro aqui, eu não posso pílula Onde mais eu tenho o erro. Você vê que se eu subir, eu tenho um erro aqui. Só posso ter uma prévia, você vê minha prévia. Se eu ficar vermelho aqui e clicar, volte para aqui. Vamos subir novamente. Temos um erro aqui. E podemos ter uma prévia disso e clicar aqui, voltar aqui. E também tenho essa atividade principal. Tem um sublinhado vermelho y porque tem um erro. Eu tenho um sublinhado vermelho aqui, eu tenho vermelho embaixo do problema E mesmo se eu errar, tenho um erro vermelho aqui. Isso me mostra onde está o erro. E até mesmo nisso. Deixe-me abri-lo. Vermelho abaixo da linha e vermelho abaixo da linha. Esta é a linha direcional vermelha. Isso só me mostra que temos um problema até eu chegar aqui e ver, Ok, temos um problema aqui. E deixe-me começar a construir um pacote AP case, e eu tenho um erro Mas o que acontece se eu pressionar build AP case? Espere. Você tem exceção. Lá nesse arquivo, linha 65, se eu clicar nele, tenho erro na linha 65. Eu só me levo ao erro. Então, se eu remover esse espaço extra, tudo bem. Agora está tudo bem. OK. Vamos pressionar inter aqui. Só aqui. Vamos criar uma função sem entrada. Esconder, esconder o quê? K. K. Vamos abrir e fechar sem entrada. Só inter. Essa é a nossa função. Obtenha este serviço de sistema inter. Ele precisa de uma entrada. Contexto, é claro, contexto com C grande Se você escrever um C pequeno, você não pode ter esse contexto. Porque estamos em um nível muito iniciante. Eu insisto nisso toda vez. Acho que agora você deve entender isso muito bem. Você vê capital. Eu não deveria escrever. Eu deveria escrever. Serviço de método de entrada Write Big Input. E no final desse turno e zero, e eu pressiono para casa, turno e nove. Eu adiciono dois parênteses e pressiono apenas um lote Ok, estou aqui porque estamos em um nível muito iniciante, mas esse não é um nível muito iniciante Você não se importa com o que escrevemos? Apenas escreva isso. O método de entrada gerencia o ponto Queremos ocultar a altura K para que a entrada seja inserida da janela E eu apenas digo vinculação e mark e token de janela de ponto raiz. O segundo parâmetro é zero e outra marca. Eu esqueci isso. Deixe-me minimizar essa altura e você poderá ver o código. Eu pressiono inter aqui, para que você possa ver facilmente meu código Então, escrevemos nosso código para fechar o teclado. Nosso teclado virtual, é claro, deixe-me explicar mais. Eu não quero explicar esse código. Está tudo bem. Você não precisa entender isso em um nível muito iniciante. Mas deixe-me explicar algumas coisas. Por exemplo, deixe-me esquecer isso. Você configurou o ouvinte de cliques. Você não precisa saber todas as coisas em segundo plano. Andrew D Studio e Catlin definem e clicam no ouvinte. Está tudo bem. Você não precisa saber. clicar em Ouvinte no botão Andrew Sudio e Catlin language, façam isso por você. Você só deve fazer seu código dentro dele e, em seguida, o usuário clicar nele, esse código roda o Easy Z, desse jeito. Esta é a função do método Catlin e Andrew Sudio. O que é esse método e função? Essa é uma função predefinida. O que eu explico. Por exemplo, você vê que criou essa função? E uma linha de código. Não importa e não diz respeito a ninguém, a nenhum usuário. O que você faz lá dentro? Imagine outro usuário. Quer usar sua função. Esse usuário só chama essa função. Envie-lhe dois números e pegue um número de volta, e esse número é um pouco disso e disso. Nós entendemos isso muito bem. Esse usuário não deveria saber, não deveria se preocupar com o que você faz lá dentro? O que você faz dentro do outro? O que você faz dentro do outro? Esse método me dá a divisão de qual ponto decimal. O usuário não sabe e não deve se importar. Assim, não sabemos e não devemos saber o que aconteceu no set click listener Só devemos saber quando alguém clica em Definir, clicar em ouvinte e executar E então podemos executar nosso código. O mesmo que isso. Acabamos de escrever outros códigos predefinidos neste Android, o Studio e a linguagem de corte. Então, pressionamos o teclado em nosso programa Mas não devemos saber todas as coisas específicas. O que isso funciona? Como isso funciona? É claro que, nos métodos futuros, sabemos muito, muito mais, mas, por enquanto, não se preocupe. Escrevemos esse código e lemos o estúdio, fazemos isso por nós e cortamos a linguagem. É claro. Mais uma coisa, eu chamo isso. Eu coloco a vinculação dentro disso e escrevo minha variável de vinculação. Por quê? Porque eu escrevo minha variável com nome de vinculação. Veja, eu declaro essa variável como vinculativa. Se eu chamá-lo de qualquer outra coisa, e se você chamar de qualquer outra coisa, você deveria escrever outra coisa. O que você chama vinculação é o nome que acabamos de chamar. Não pense que é uma coisa fixa. Não, escrevemos vinculação para nossa variável por causa disso, chamamos de vinculação aqui. Mesmo isso, chamamos de vinculação aqui porque nossa primeira variável que definimos tem o nome vinculação. Se chamarmos isso de qualquer outra coisa, aqui também mudou. Mas essa parte aplicada é corrigida. Por exemplo. Outro exemplo, essa parte é fixa, mas essa vinculação não é fixa. Essa parte está corrigida. Essa vinculação, não, é claro, token raiz e a janela são fixos. Apenas essa ligação é o nome que você chama. Como eu disse, eu apenas pressiono o controle para ver para onde essa coisa vai? Você vê a linha 2227 e muitos códigos e comentários. Eu não deveria conhecer esses códigos e outras coisas, e como essas coisas funcionam. Oh, meu Deus, muitos códigos. Não. Acabei de usar esse gerenciador de métodos de entrada. Eu uso esse gerenciador de métodos de entrada. Essa parte. E no futuro, conheceremos algumas delas, somente algumas delas, somente as partes que deveríamos conhecer Porque não podemos Realmente não podemos ler todos os códigos. Até eu escrevo programas para Android. Mais de dez anos. É claro. Acho que meu primeiro programa foi há cerca de 11 anos. Mas dez anos ou mais de dez anos. Então, eu deveria saber todos esses códigos? Não, eu não posso. Existem milhares de códigos em métodos diferentes, e não, não, não, eu não posso. Então você não se preocupe. Por favor, não se preocupe. Então, vamos copiar isso até aqui, controlar C, depois ir depois de cada set e clicar em ouvinte Inter Control. Inter Control Inter Control Eu realmente não gosto de escrever todos os códigos. Então, eu apenas copio no Control. Eu sugiro que você faça isso também, Joy, e faça seu trabalho de forma inteligente, não difícil. Por causa disso, exatamente por causa disso, criamos funções. Então, fazemos uma coisa inteligente, não difícil, escrevemos uma vez. Usamos muitas vezes esse código. Vamos executar nosso aplicativo. Minimize isso, escreva 11 e 22 e pressione mais. O que acabou de acontecer? Deixe-me te mostrar novamente. Clique aqui, pressione menos, clique aqui, divisão Clique aqui, multiplique nosso teclado de teclas programáveis, teclado virtual aqui, alturas Como eu disse, o que cada parte do código faz? Não deveríamos saber. Ok, eu sei que usamos o serviço do sistema e outras coisas. Mas não devemos nos confundir no começo. Como não é um código complicado, basta ocultar sua entrada automática da janela. Mas aprenderemos isso no futuro e em muitas outras coisas. Podemos apenas dizer: Ok, por favor, use esse código. Outro exemplo simples, isso se aplica. Você sabe o que essa parte faz? Ele tem muitos códigos internos para fazer suas coisas. Mas nós apenas o usamos para facilitar nossa vida. Nós o usamos até mesmo aqui para facilitar nossa vida , tornar nosso código o e mais uma coisa, a vinculação para fazer a vinculação tem muito código, mas não devemos saber as coisas específicas que existem nos bastidores. Acho que essa é a coisa básica que você deve saber sobre as funções. Escrevemos essas coisas para que o usuário ou nós mesmos, quando quisermos usá-las, não nos importemos com o interior. Nós apenas usamos a função. E então temos um erro, como eu disse, consertamos o interior. E depois disso, não nos importamos com o código. Nós apenas usamos a função. Por exemplo, chegamos e dizemos para seguir. Depois disso, não nos importamos com o código. Nós apenas usamos a divisão. Ok, acho que é o suficiente para esse CD D. Continuamos na próxima parte e aprendemos mais algumas coisas para finalizar o nível iniciante Muito obrigado. 48. Dia 6: exportação de apk e dicas Part2: APK da porta X e dicas, parte dois. Ok, bem-vindo de volta. Onde estávamos? Estamos analisando nosso projeto para ver se temos alguma coisa extra a aprender antes de encerrar onde começamos um nível? Acabamos de exportar um APK no vídeo anterior. Agora, vamos continuar. Primeiro de tudo. Vamos dar uma olhada nesse aviso amarelo. Temos um aviso de uma semana. O que diz isso? Diz que teclado de alta função pode ser privado. Onde está? Eu clico duas vezes nele. Está na linha 76. Está aqui. Então eu quero fazer isso. Faça um teclado alto. Privado. Assim à direita, como podemos ver, função privada, clique, e eu tenho essa função privada. Agora, não há problema na atividade principal. Eu escondo isso e tenho esse cheque verde. É muito melhor. Próxima dica: quando acabamos de instalar nosso estúdio Android, temos um projeto bem-vindo. Mas que tal agora? Não temos mais isso. Mas podemos criar um novo projeto usando o menu de arquivos do menu principal. Acabei de pressionar o menu principal. Eu tenho esse menu de arquivos. Novo, qual projeto novo. Como quero criar um novo projeto, basta clicar nele. Eu tenho todo o modelo. Vamos dar uma olhada neles para ver o que temos. Mas primeiro, deixe-me fechá-las e ver a abertura. Se eu clicar em abrir, posso abrir meus projetos mais antigos Veja, no momento, estou no sexto dia, e este é o responsável pelo meu projeto. Este é meu projeto, minha calculadora. Você vê esse ícone verde do Android porque é um projeto e eu posso abri-lo. Eu apenas seleciono isso e clico em OK, e meu projeto será aberto. Ok, vamos cancelar isso e voltar para o novo projeto. Vamos dar uma olhada no lado esquerdo. Eu tenho telefone e tablet. Eu também tenho sistema operacional. É para relógios Android que as pessoas usam com tela muito pequena. Você vê, sem mais nem menos, uma tela pequena. E eu posso criar um novo aplicativo selecionando um desses. E ele faz apenas algumas primeiras coisas para o meu aplicativo. Eu posso criar o aplicativo empiba ou esvaziar um pouco o Ty e outra coisa E eu também tenho essa televisão. O que é essa televisão? É para TVs com Android. Eu posso criar para uma TV que tenha Android. E corra naquela TV. Também tem atividade ou com vistas e outras coisas. E mesmo as outras coisas, não fazemos coisas com elas. Vamos voltar ao telefone e ao tablet. E da Internet, você também pode baixar outros modelos. Mas vamos voltar ao telefone e ao tablet. Você não tem nenhuma atividade sem nada, nem atividade vazia e uma atividade vazia e simples. Então, pelo que entendemos, todas essas são algumas atividades de pré-retorno. Esses projetos são bons para nos ajudar a começar. Em breve. Agora a atividade está vazia. A atividade vazia, como você pode ver, o ícone é diferente. Não falamos sobre isso agora. As atividades de visualização básica são criadas, como você também pode ver, essas ferramentas básicas para nós. Portanto, temos um menu simples, um botão simples. A próxima nos dá alguns toques que podemos alternar entre essas guias O próximo apenas nos dá uma atividade vazia. Simples como acabamos de criar. Pode ver isso como menu, por exemplo, você pode colocar um perfil e outras coisas no topo e criar atividades de jogo com o Clips plus negativo Acho que basta falar sobre tudo isso. Obviamente, é uma visão óbvia e responsiva. Cria uma visualização responsiva para você. Responsivo é o tipo de coisa que quando a tela fica maior ou menor, muda de tamanho Também temos isso na web. Se você esqueceu o que e qual deles faz o que, basta olhar as fotos. É muito fácil. Por exemplo, esta foto não tem nada e abaixo dela diz: o que ela faz? E, de certa forma, simplesmente não escolhemos nenhuma atividade. Nenhuma dessas categorias e nenhum modelo, nenhuma atividade. Eu não preciso de nada. Acabei de criar do zero. Próximo. Na próxima página, temos o nome. Por exemplo, dizemos calculadora para nosso projeto. Temos esse nome de pacote. E, como dizemos, é um código postal exclusivo, que você pode considerar para uma casa. Se você tem uma casa, ela tem um código postal exclusivo e, no nome do pacote, você tem um nome exclusivo como domínio para sites do seu aplicativo. As pessoas podem fazer a diferença entre seu aplicativo e o outro aplicativo. Isso é muito útil quando você deseja colocar seu aplicativo no Google Play. Geralmente é de três partes, como você pode ver, ou pode ser de quatro partes. Assim, mas tem algumas raízes. Por exemplo, se eu apenas limpar. Eu disse que o pacote deve ter pelo menos um separador de pontos. E se eu colocar o ponto, diz que os segmentos do pacote devem ter um comprimento diferente de zero porque sua segunda seção não tem nada. Ok, eu digo A. O erro desapareceu, mas não é um bom pacote. É melhor ter, por exemplo.com e seu nome secundário. Siga isso. Por exemplo, eu tenho 70 20 four.com, e ele diz que um dígito não pode ser o primeiro caractere em uma declaração de pacote, então eu não posso começar com o sete Eu digo site. Depois disso, este é o meu site 724 le.com E depois disso, eu digo, então o que devo fazer agora? Eu digo, faça o nome do meu aplicativo, por exemplo, calculadora, por exemplo, notícias. Talvez eu tenha um aplicativo de notícias. Eu coloquei notícias. Portanto, é para este lado e para este aplicativo, e pode ser um aplicativo exclusivo e um nome de pacote exclusivo porque eu uso meu próprio site e o nome do meu aplicativo dentro desse nome de pacote. Além disso, veja, se eu pressionar espaço, você não poderá usar esse espaço dentro desse nome. Tem algumas regras simples e diz o que você pode ou não fazer. Que tal se eu colocasse, por exemplo, B W para esta notícia. Está tudo bem? Não me dá erro, mas é o mais comum. É muito mais comum não fazer isso. Eu sempre, mesmo o estúdio Andre não me dê nenhum erro, eu sempre uso uma letra minúscula e pontos como este no meu site e no nome do meu aplicativo Eu nunca uso, por exemplo, caracteres especiais. Você vê? Não é permitido. Nome simples, site simples e esses pontos separados que separam seu De qualquer forma, salve sua localização, onde você deseja salvar este aplicativo. Então, como acabei de mostrar, você pode abrir seu aplicativo mais tarde. Qual é o seu idioma? Ok, eu uso o Cut. Eu posso usar o Job, mas o Google recomenda cortar, e é mais poderoso e fácil Eu acho que é melhor. É minha própria ideia. Você pode usar Java, mas na maioria das vezes usa o Cutling. Acho que neste ano e no ano passado, eu não uso Java nem uma vez. Na maioria das vezes, cortando. Mas ainda está lá e, se você precisar, pode usá-lo. Pela minha experiência, se você tem 100 linhas de código com Java, se quiser fazer a mesma coisa com cutline, você tem cerca de dez a 20 ou talvez 30% menos código Como você se lembra, dizemos, menor a, quero dizer, função de código variado e código inferior É melhor porque você pode corrigir o erro com mais facilidade. Colocamos o mínimo etc. no Android sete. Você pode escolher mais baixo, mas eu não recomendo. Veja, eu tenho até 4.1. Como temos no máximo 14, coloco no mínimo sete e quando temos no máximo 15, coloco no mínimo oito. Por quê? Porque você vê esse sistema operacional. O sistema operacional Grows Android vai para o próximo nível. Ele recebe recursos muito novos. E quando você seleciona um Android muito baixo, por exemplo, se eu escolhi 4.1, minha depuração e minha resolução de erros se tornaram Acho que recebo muitos erros e ninguém, quase ninguém ou muito pouca gente tem esses Androids. Você vê? Acabei de colocar esse Android 790, 6% 0,5 dos dispositivos executarão meu aplicativo. Por quê? Porque o resto das pessoas tem aqueles andróides inferiores. É apenas uma pequena porcentagem, mas minha depuração, tratamento de erros e meu desenvolvimento ficaram Portanto, não vou recomendar a criação de um Android desatualizado. Cerca de sete versões do Android recente são boas. Acho que é o padrão. Quando eu abro o Android Studio, é o Android 7 padrão. Acho que no próximo ano, ele se tornará o Android oito por padrão. Por quê? Como é recomendado, deixe as versões muito, muito antigas para trás. Acredite no último recomendado, não vou mudá-lo. E quando eu pressiono terminar, ele cria meu a. Ok. Apenas cancele. E no próximo, continuamos vendo o que mais podemos analisar e quais pontos perdemos? Então, nós também os aprendemos. 49. Dia 6: exportação de apk e dicas Part3: Exporte APK e dicas, parte três. Ok, bem-vindo de volta. Parte três, quatro, algumas outras dicas. Antes de começar, veja, se você pressionar um novo projeto e, por exemplo, este, procurando STCs disponíveis para download Como não estamos conectados à Internet na sessão anterior, você vê que existe o certo para você. Isso pode ser antigo. Você deve se conectar à Internet para conferir. Mas quando você se conecta à Internet, você não vê mais isso. E apenas verificando se alguma coisa mudou. E depois disso, você tem isso assim. Acabei de dar uma olhada no meu vídeo anterior e vejo que, como não estou conectado à Internet, você vê essa mensagem. De qualquer forma, câncer e, claro, conexão estável e boa à Internet. Você precisa disso. Outro ponto para criar seu projeto, você precisa de alguns arquivos dos Android Sudio dos servidores do Google E se você não tem uma boa conexão com a Internet, você não a tem. Você pode não tê-los e, em seguida, ter um erro. Você cometeu um erro sem motivo. Exatamente, por causa disso, você deveria dar uma olhada. Em primeiro lugar, você tem conexão com a Internet e tem o arquivo necessário. Se alguns dos arquivos forem baixados completamente, quebrados ou qualquer outra coisa, você pode invalidar o cache limpar o cache e baixá-los novamente. E você também deve verificar essas três coisas opcionais. Então, mesmo Andrew the Sudo, faça isso de forma muito mais limpa, muito mais profunda e melhor Até você limpa o cache do sistema de arquivos do histórico local. Você pode verificar todos esses três. Obviamente, se você travar por enquanto , cometa um erro sem motivo e você tem uma conexão com a Internet Agora, você pode fazer isso se Klose e abrir o Android Studio não forem suficientes De qualquer forma, acabei de cancelar. Ok, acabei de abrir este projeto. E você vê esse cheque verde. Essa marca verde significa que está tudo bem. Então eu não tenho um problema porque se eu tiver um erro, como eu disse, eu deveria corrigi-lo. E, claro, minhas aulas têm esse cheque. Quase revisamos todas essas coisas. Não acho que muitas dessas coisas precisem ser revisadas. Por exemplo, até falamos sobre as opções de três pontos e três aparências, pacote medial compacto e clicamos nele e você vê parte por parte o nome do seu pacote desta forma Esses três pontos, três aparências, pacote medial compacto Mude isso. Já que falamos sobre todos esses temas. Deixe-me pensar no que mais esquecemos de dizer sobre nosso final de nível muito iniciante Mais uma coisa, mencionei se eu clicar em nova atividade, esvaziar a atividade V, acabo de receber um erro. Às vezes, Andre Sudo comete erros. Você pode denunciar isso. Então, a equipe de Andre Sudo conserta Eu só pressiono o repórter. Qual é o problema? Se eu clicar com o botão direito do mouse neste colar e uma nova atividade, esvazie a atividade V. Nada acontece ou simplesmente me dê um erro. Por quê? Pode ser o Android Studio. Erro? Pode ser meu problema ou qualquer outra coisa. Eu não sei. Uma vez que estamos em um nível muito iniciante. Achamos que devo fazer? Acabamos de dar uma olhada. Teste do Android. O que é isso? Basta reconhecê-lo duas vezes Nós não o criamos. Então, onde está nossa principal atividade aqui. Veja, não sabíamos o que acabou de acontecer. Então, sem entrar em nenhum detalhe, basta clicar aqui, botão direito e aqui criamos nossa atividade na MTV Acho que talvez essas coisas aconteçam com você. Pode ser o blog do estúdio Andrew, e pode ser sua culpa. No nível do bar, não se preocupe com. E apenas aprenda e aprenda. De qualquer forma, clique. Nós temos isso. Acabei de mencionar outra coisa. Você pode escolher seu idioma de origem. Nosso idioma é cul , mas talvez você queira criar algumas de suas atividades com Jo Está tudo bem. Você pode ter sua empresa, seu projeto, inteiramente com Katlyn ou inteiramente com Java Ou com algumas páginas, com Katlyn, algumas páginas com Java, está tudo bem É outra dica. E você pode trabalhar com uma equipe. Um dos membros da sua equipe quer trabalhar com Java. Um deles com Katlyn, acho que não é recomendado que eu não goste de fazer isso, mas. Está tudo bem. Ou mais um exemplo, você encontra códigos com a linguagem Java na Internet e deseja usá-los dentro do seu projeto. Tudo bem porque, e o Studio suporta os dois, algumas de suas aulas que você copiou ou tirou de outro projeto, da Internet ou de seus colegas podem ser Java e seu próprio código pode ser Cut It's ok Acabei de cancelar isso. Mais uma dica: executamos nosso aplicativo dentro da nossa voz virtual. Temos outras opções. Por exemplo, podemos conectar nosso próprio telefone com cabo USP ou Wi-Fi ao nosso computador e você se lembra que o APK de depuração que criamos no Android Studio cria esse tipo de APK e o envia para o seu telefone e o executa E você pode ver o que acontece se, por exemplo, ocorrer um erro no seu telefone. E eu acho que é muito melhor porque, em vez de um emulador dentro do Android, você o tem em um dispositivo real, mas não verificamos esse tipo de coisa no nível inicial Só quero que você saiba que você pode executar todos os seus testes em seu telefone real. Ou até mesmo vários telefones, não apenas um telefone. Você tem talvez um, dois, três telefones com Android 11121314 e deseja verificar todos os quatro telefones para ver se algo está errado Uma dica importante. Eu recomendo que, se você quiser testar em um telefone, encontre os telefones com o maior número de vendas. Para seus testes. Por exemplo, consulte o mercado em seu país se quiser lançar localmente ou em países inteiros para ver que tipo de telefone e qual modelo tem mais células e você compra esse telefone. Assim, você pode testar na maioria dos dispositivos desse tipo. Eu faço isso e recomendo, mas você pode escolher outra maneira. E você ainda pode fazer isso com dois ou três telefones? Por exemplo, encontre mais três telefones vendidos e teste seu aplicativo nesses três? Ou, por exemplo, um deles é um tablet de tela maior, 12 ou 13 polegadas, e dois deles são telefones comuns. Deixe-me verificar mais uma coisa. Entendo. Falamos sobre gradio Sim, acho que falamos sobre isso, mas vemos a versão Não, não vimos. Podemos alterar a versão do nosso aplicativo aqui. Por exemplo, nossa versão é duas. Você verá pla se verificar se há uma versão do aplicativo, por exemplo. 20. A próxima versão é 21. A próxima versão é 21.5. E assim por diante, você pode alterar as versões aqui e também pode nomeá-las. Por exemplo, meu nome de versão é 1.0, 1.1 e minha versão se torna duas ou, como eu disse, meu nome virgem é 10.0 e meu código virgem é, por exemplo, 20 E minha próxima versão é 21, mas eu só faço uma pequena diferença. 10.1. O primeiro número é para trocas de porcos Nós não mudamos muito isso. Para pequenas mudanças, alteramos o número depois disso. Por exemplo, um ou se tornou dois. Acho que devemos especificar o vídeo dez ou 20 minutos apenas para saber como podemos adicionar nossas versões. Só tenha cuidado. Acabei de mencionar isso para ter certeza de que você entendeu bem. O código da versão é um número inteiro. O que você não pode dizer sobre isso. Isso te dá. É um número inteiro 21, depois disso, o que acabou de acontecer? 21,1? Não, 22. O código da Virgin é para você. Nome virgem é o nome que você mostra ao seu usuário. Então eu apenas mudo e é uma corda. Veja, isso e isso, é uma corda. Então, simplesmente você pode dizer: Ok, agora é 0,1. Mas se você disser erro de 0,1, não faça isso. E também SDKs e SCs de minas e outras coisas que temos, não falamos sobre eles Só esses dois. Lembre-se mais uma vez. Esse é o número inteiro 201-20-2203 e nenhum ponto. Esta é uma string e o nome virgem é o que você escolheu usar. Pesto, você vê aquela virgem. Essa é a corda que você vê em peleas. Como você se lembra, quando mudamos alguma coisa, devemos perguntar. Por quê? Deixe-me minimizar isso porque arquivos gradle mudaram desde o último projeto Portanto, é melhor você sincronizar seu projeto sempre que mudar, e nós não alteramos muito o gradle. Esse é um arquivo importante. Tenha cuidado. Já que, como eu disse, você é iniciante em um nível muito iniciante, por favor, não mude as coisas que você não sabe o que são Por enquanto, atenha-se às coisas que acabei de dizer, mas não demais. Por exemplo, você não pode simplesmente alterá-lo 1-2. Tudo bem, mude para dois e a versão 1.2 se tornou 1.1. Está tudo bem. OK. Vamos apertar a coisa agora, esperando. Veja, se eu clicar nisso, ele me mostra essa tarefa em segundo plano. OK. Então, foi concluído com sucesso. Deixe-me fechá-lo e abrir uma atividade principal para ver o que temos em nossa atividade principal? Eu tenho essa visão de design. Posso ver minha atividade o mais próximo possível da visualização do usuário. E eu também tenho essa divisão e também tenho esse código. Deixe-me verificá-los. Dividir. Eu tenho meu código e meu modo de design de visualização. Código e design. Agora, codifique apenas codifique novamente, divida código e design e projete apenas design Você vê essa paleta? Temos algumas categorias, comuns os objetos mais comuns, texto, ben, layouts rígidos Você se lembra? Temos layout linear, WordCD, layout linear, contêineres horizontais, auxiliares, Google, evento de visualização de mapa e outros Então, deixe-me ver Butten. Nós adicionamos boten. Claro, usamos material, mas simplesmente, se estivermos em design e quisermos adicionar um botão, podemos pegar isso, pegar, pegar, pegar e soltar. Nós temos nosso botão. E como estamos em um layout restrito, o que devemos fazer? Você vê o erro ao abrir esse erro. Resumindo, diz que você deve conectar isso ao soware Por exemplo, até aqui. E conecte isso aqui. Por exemplo, nesses dois aqui, o erro desapareceu. Por quê? Porque em? Layout restrito, você deve especificar como meu objeto será mostrado do outro lado, é claro Você vê os dois lados, eu tenho que conectar os dois lados para remover meu erro. Mas é opcional. Eu adiciono meu terceiro lado. Eu até posso conectar isso aqui, aqui ou até mesmo aqui. Isso está relacionado a isso quando eu me conectei a eles. E se eu olhar para a divisão, meu objeto está aqui. Restrição da metade inferior à parte superior restrição n até o final do início até o início Se eu remover um deles, por exemplo, essa linha That desaparecerá agora. Os outros três, como você pode ver, um, dois, três, os outros três permanecerão. Então, mesmo que eu tenha essa linha amarela abaixo, deixe-me pressionar o controle z para que minhas quatro linhas estejam conectadas. OK. O que diz isso? Eu digo, por favor, coloque essa string, a string do botão no recurso de string porque é melhor. No futuro, em cursos futuros, tentaremos reduzir esse tipo de aviso o máximo que pudermos Mas, por enquanto, não se preocupe com isso também. Como você se lembra, recomendo que você escreva esses códigos o máximo que puder. Obviamente, você pode acessar o modo de design e vê-los para entender o que você tem e qual é o nome deles. E até mesmo adicione-os. Ao adicioná-los, você pode ver o código. Mas eu acho que é melhor. Eu recomendo que seja melhor escrever o código para cada objeto. Eu sei que é mais fácil usar o design. Porque eu simplesmente arrasto e subo. Mas acredito que é melhor que você pratique o uso do código o máximo que puder. Essa é minha recomendação. Mais uma coisa, ao ver essa visualização de código, acho que não mencionei. Isso é com a linguagem ema. Escrevemos a visão completa com a linguagem Mel. A linguagem Exemal tem esse eMEL no início. Eu só quero que você saiba. Essa é a linguagem ema, e toda a estrutura de nossa visão está na linguagem emer De volta ao botão, aí está o nosso botão. Este é o nosso botão e visualização. O que mais temos? Também temos atributos. Você vê aqui os atributos. Atributo para quê, para este botão. Como você se lembra, nós apenas escrevemos código. Por quê? Porque é melhor. Mas se não nos lembrarmos ou apenas quisermos aprender algumas dessas coisas, podemos atribuir e usar algumas delas. E depois escreva-os em código. Por exemplo, eu quero que eles sejam um pouco baixos, baixos, como aqui, 89 90%, por exemplo. Você vê que minhas mãos estão tremendo. Não consigo colocar 90. É 87%. Por quê? Porque é pequeno e, por exemplo, minha mão está tremendo E as outras 144 horizontais e, deixe-me dividir. Eu tenho 87%. Na vertical, 87%, eu tenho. Mude para 90. Minha mão não está tremendo aqui. Você vê? Por quê? Porque este é realmente um lugar pequeno onde eu movo minha mão. Mas aqui, eu simplesmente não tenho esse tipo de problema, porque eu escrevo. Se eu não consigo entrar em contato com as equipes e quero ser mais específico, mais profissional, eu uso esse código. Mas, para começar do começo, como eu disse, ele veio aqui e disse: Ok, coloque à direita, 100%. Se eu quiser 99%, posso ir aqui e dizer 1,0, não, 0,99, 99% Volte, eu tenho 99%. Como você pode ver, tenho esse tributo em comum. No começo, e eu tenho todos os atributos. Mais comum na parte superior. Comum. Mais tarde, esses e todos os atributos aqui embaixo. Você vê? Se eu clicar nele, tenho todos esses atributos. Se eu quiser encontrar alguma coisa, eu vim aqui, achei. Mas na maioria das vezes eu tento usar código. Espero não explicar também, porque só quero que você saiba o quanto é importante escrever com código. Ok, vamos fechar o vídeo, mas só mais uma coisa. Deixe-me só porque eu abro isso. Acabei de mostrar que, se eu for dividir, posso simplesmente entrar aqui e clicar com o botão direito do mouse ou abrir o atributo. Eu tenho essa margem que a move, e eu só posso abrir isso e removê-lo. eu digitar algo errado, e também, se simplesmente subirmos. Veja, eu apenas conecto isso aqui e posso pressionar esse padrão x ou simplesmente removê-lo no código ou pressionar esse x, recém removido. Então, podemos fazer isso, mas o Android esquerdo não se conecta a nenhum lugar. Nós temos esse erro. Não consigo movê-lo para cima e para baixo. Veja, não consigo movê-lo para o Android esquerdo. Por quê? Mesmo se conectarmos isso aqui, posso movê-lo para a esquerda e para a direita, porque primeiro devo conectar o lado esquerdo a algum lugar, depois, porque meu esquerdo e direito estão conectados a algum lugar, eu posso movê-lo. Eu mencionei isso porque se você veio e viu que não tem esses botões, não se preocupe com esse botão. Veja, eu o seleciono, mas não consigo selecioná-lo lá. Acabei de acessar o código para ter acesso ao meu botão. Eu clico nele, clico, clico, clico, clico, clico . Eu posso acessá-lo. Por quê? Porque na visualização de design, às vezes esse tipo de coisa acontece. Se você tiver o mesmo problema, clique, clique, clique, você não pode tê-lo. Então, basta dividir ou até mesmo codificar e clicar nele. Agora você o seleciona porque está nesse botão. Agora, voltei ao design. Você tem isso aqui e pode alterá-lo porque agora o seleciona. Às vezes, até mesmo Andrew, o estúdio tem um blog e, por causa disso, você pode simplesmente fazer o que quiser em código Na maioria das vezes, é melhor do que design. Mas em design, como você pode ver, eu tenho muitos, e posso mudar essas coisas de forma simples e rápida e ver o que acabou de acontecer no segundo Então, devemos combinar essas duas coisas. Mas na maioria das vezes eu vou para o código. Obrigado, e vejo você no próximo vídeo. 50. Dia 6: exportação de apk e dicas Part4: Exporte o APK e as dicas, parte quatro. Onde estamos. Acabamos de mostrar o modo de design e falamos sobre esses objetos. Temos mais alguma coisa? Sim, claro. Você vê aqui o componente, venha aqui e clique nele. O que você tem aqui? Você tem seu layout de restrição. Abaixo disso, cada um dos seus objetos. Se você clicar em qualquer um deles, você selecionou. Layout interno, resultado BTN ad, Bt BT BTN, TX V tX e o O que é esse botão? Esse botão, o último botão que adicionamos. Então, nós os temos como uma árvore. Por quê? O que isso significa com árvore? Isso significa que, como esse primeiro valor de DTI está primeiro dentro desse layout de entrada, ele está um pouco à direita deles Veja, e se fecharmos isso, não vemos isso ou um layout linear. Dentro desse layout linear, temos quatro botões. Esses quatro botões, se Kels it, T view são assim e abre-os, Kelst, caneta Deixe-me mostrar, projeto, você tem essas três visões, Kels aberta, Klos Assim, você também tem essas três visões, Kels open Ok, o que vem a seguir? Temos algumas coisas acontecendo neste lugar. Deixe-me minimizar isso e minimizar isso e o que temos aqui? Eu tenho um dispositivo para pré-visualização, qual dispositivo você quer? Você não pode ter sua prévia na TV. Você pode ter sua prévia em relógios, relógios inteligentes e, no outro, você vê Até carros, o que mais Esse botão? O que diz isso? Modo System I? Deixe-me apenas pressioná-lo. O que eu tenho? Não é noite. Não é noite significa visão normal. A maioria dos telefones está em exibição normal. Mas às vezes seu telefone está no modo noturno. Na visão noturna, você tem cores mais escuras. Para que seus olhos fiquem mais confortáveis. Deixe-me te mostrar a visão noturna. Na visão noturna, seu aplicativo fica assim. Então você pode conferir. Você pode ver as coisas na visão noturna? Você consegue ler números, ler os botões na visão noturna. Está tudo bem na visão noturna? Lembre-se de que também é melhor depurar e verificar seu aplicativo na visão noturna Vamos voltar, não é noite. O que temos de orientação? O que vemos é retratado e também temos a paisagem. O que é isso? Parece que você colocou o telefone na lateral. Obviamente, você pode bloquear seu aplicativo nas configurações, para que ele não se mova desse lado. Não seja assim. Mas se você quiser ser assim, você também deve dividi-lo nesse modo, mas na maioria das vezes, eu pessoalmente apenas o bloqueio nessa visualização. O que mais design. Superfície, eu tenho o design. Mas isso também me faz esquecer de todas as outras coisas. Deixe-me te mostrar um plano. Isso é uma cópia azul. Veja, e eu também posso ver o design e a planta ao mesmo tempo Você vê como é útil. Mas geralmente, eu o configuro apenas no design, e às vezes eu o coloco no desenho azul e no azul estampado, e depois coloco de volta no design. Temos algo que devemos conferir em um nível muito iniciante Sim, por exemplo, podemos simplesmente olhar essas diretrizes, clicar nelas, diretriz vertical Deixe-me adicionar um. Eu adiciono essa diretriz, movo até aqui para verificar, é com isso com aquela idade ou não Isso me ajuda a ver qual objeto está lá. Na maioria das vezes eu o uso para isso. Tem muitas outras coisas para fazer. Mas na maioria das vezes eu o uso para isso. Talvez falemos sobre outras coisas que ele pode fazer e, claro, sobre as outras no futuro, mas, por enquanto, como posso removê-lo? Esse é o ponto. Se eu trouxer você aqui para dizer, Como posso removê-lo agora? Eu faço qualquer coisa. Mesmo que eu feche estúdio de Andrew e volte. Ainda está aqui. Oh, não, o que devemos fazer? Você acabou de ver ir para uma divisão ou código. E veja. Isso é um objeto. Não é uma linha invisível. É realmente um objeto. Então, basta selecioná-lo e excluí-lo. É um ponto muito importante. Acho que seu nível iniciante pode achar isso muito útil. OK. O que mais você vê isso? Isso também é muito interessante. Clique aqui. Mostre todas as restrições Veja a página e clique nela. Você vê agora que vemos essas conexões, o que com o quê? Se eu verificar, verifique e não temos nenhum deles. E também não é amor. Podemos verificar a interface do usuário do sistema. Sim, podemos verificar a interface do usuário do sistema. Se você verificar a interface do usuário do sistema, você tem esse entupimento, bateria e outra coisa na parte superior, como espuma real Isso pode ser útil. Depende de você. Normalmente eu só verifico. Não há nada realmente importante aqui. O que mais? E atributo, deixe-me mostrar uma coisa sobre atributos. Veja, acabamos de falar sobre esses atributos. Há muitos atributos aqui, e há muito menu aqui. Eu não posso falar sobre todas essas coisas. Mas eu só vou te mostrar um exemplo. Atributos, você tem visibilidade. Por exemplo, veja esse botão. Se você colocar essa visibilidade e clicar nesse menu suspenso. Você vê que tem três opções. Por exemplo, se eu disser invisível, isso não é mais visível. Se eu disser visível, eu vejo. Se eu selecionar esse texto e excluí-lo por padrão, a visibilidade ficará visível. Ele voltou ao padrão e eu tenho muitas outras opções e atributos. Falaremos sobre eles no futuro. E deixe-me ver qualquer outra coisa. Podemos simplesmente encerrar o dia e ir para o nível iniciante. Ah, mais uma coisa. Deixe-me te mostrar isso também. Veja, temos esse primeiro ponto de valor. It. O que é esse ponto? Esse ponto mostra a coisa que tem a propriedade que tem ou a função que tem dentro um objeto ou variável ou qualquer outra coisa após a qual você coloca esse ponto. Por exemplo, esse valor inverso de DT tem uma propriedade de erro ou exemplo simples, exemplo mais simples Temos esse texto de ponto de resultado tx. Portanto, nossos resultados tx têm uma propriedade chamada texto e também têm visibilidade do nome da propriedade Veja, você tem todos os outros atributos aqui. Você vê isso, você vê, botão de texto, você altera esse texto. Você muda esse texto. Deixe-me te mostrar. Clique aqui, pressione ponto. Nada mostra o espaço de controle. Finalmente, isso aparece. Eu tenho uma mensagem, tenho um erro. Eu tenho funções como string. Eu tenho uma dica e muitas, muitas coisas. Eu pressiono V. Eu tenho visibilidade. Eu posso mudar isso aqui. E, claro, como você vê, temos muitas outras coisas. Por causa disso, eu pressiono V. Então ele apenas me mostra as coisas que têm V e, como você pode ver, ele me mostra as coisas do início primeiro, um, dois, três, quatro, cinco, seis, sete, oito, T, que tem no primeiro. Outras coisas que têm, por exemplo, que estão, por exemplo, no meio ou depois delas e se eu quiser mudar a visibilidade, devo escolher isso e é igual ao que eu quiser Em qualquer lugar que eu quiser. Por exemplo, depois de uma facilidade. Se algo acontecer, meu botão ficará invisível ou outro dos meus botões ficará visível desse jeito. Eu acho que é o suficiente para um nível muito iniciante. Vamos para o nível iniciante. Começamos com um projeto e esperamos que você goste. Eu tento te ensinar o máximo que posso. Como tenho ensinado tanta experiência, espero poder te ensinar bem e que você aprenda muito. Por favor, se você tiver alguma ideia para melhorar este curso, me dê uma mensagem e me dê suas ideias. Essas ideias, seus comentários, suas críticas. Todas essas coisas são muito, muito valiosas para mim e têm muito valor para mim. Obrigada. Antes de terminar exclua isso e pressione delete porque eu quero colocar a fonte para você também. Obrigada. 51. Dia 7: introdução do jogo: Introdução ao jogo. Queremos criar um jogo como esse. Assim como nossa calculadora simples que fazemos juntos e aprendemos muitas coisas, queremos fazer isso juntos. Então, primeiro, queremos planejar nosso projeto. Então, qual é a descrição do meu projeto? E, por exemplo, quantas páginas esse projeto tem e cada página. O que cada página tem dentro? E até mesmo o que cada parte de cada página faz? Eu deveria especificar tudo isso. Então eu posso começar. Então, vamos começar. Meu jogo tem uma página. Esta é a minha página do jogo. Este é meu jogo de adivinhação de números. O usuário em três, um número aqui e um número aqui nesta caixa e, em seguida, tenta iniciar Eu também quero que isso, isso e isso sejam escondidos. O que isso significa? Isso significa que invisível não aparece por padrão. O usuário só pode ver a primeira e a segunda caixa e o início. E, claro, o relatório e o resultado. Apenas quando o usuário pressiona o botão Iniciar, isso e isso se tornam visíveis. O usuário. Coloque o número um aqui dentro, o número dois aqui, pressione Iniciar e isso mostra sistema aqui dentro dentro de nossa codificação, decida um número entre isso e isso Em seguida, eles mostram o usuário. Em seguida, o usuário, quando isso e isso se tornaram visíveis. Insira o número. Pressione um número entre isso e este que o usuário já digitou. Como o sistema, nosso código, nosso programa decidem um número entre isso e isso, quando um usuário insere o número e pressiona go, verifica se o sistema verifica se esse número é menor, maior ou igual ao número gerado entre isso e isso. Em seguida, o sistema diz ao resultado o número é igual , é maior ou menor? É igual à ONU. De qualquer forma, eu também tenho um botão de denúncia. Quando eu pressiono este botão de relatório, o sistema mostra todas as suposições que o usuário faz aqui dentro e as torna visíveis Por exemplo, se eu colocar aqui dez e aqui 100, decida o número entre eles. Por exemplo, 50. E eu digo, é 70? Os resultados dizem mais baixos, eu digo 60. Eu digo menor, eu digo 30, eu digo maior. E se eu disser denunciar, se eu clicar e denunciar, posso ver Quais são minhas escolhas, meu histórico de escolhas? História de suposições, desculpe. Este é todo o meu projeto, e queremos aprender muitas coisas fazendo isso. Nosso objetivo não é terminar nosso projeto o mais rápido possível. Nosso objetivo é aprender o máximo que pudermos. Ok, basta pressionar abrir e, como quero abrir a partir dos sete, escolho meu projeto e pressiono OK. Você vê a coisa verde. É porque esse é um projeto Android. Estou esperando. Meu projeto foi construído com sucesso. Se eu entrar aqui e você ver este projeto de lei, clique nele, que diz Construído com sucesso em 30 segundos. E, claro, se meu projeto precisar de alguma coisa, ele também o baixa. Por exemplo, qualquer biblioteca ausente ou pode ser uma biblioteca que precise ser atualizada da Internet. Minimize isso, minimize isso e acesse nosso código. Como você pode ver, continuamos fazendo esse projeto dentro de nossa calculadora porque, dessa forma, aprendemos mais algumas coisas. Como fazemos isso? dentro dessa atividade, o homem adiciona um botão, logo abaixo desses quatro botões. E se o usuário clicar nesse botão, ele nos levará à página do jogo. Então, como fazemos isso? Vamos abrir esse projeto. Abra este aplicativo. Cuidado. Se esse Android estiver em um projeto, você pode ficar confuso. Portanto, deve estar no Android. Eu tenho esse cutlin mais Java. Eu abro. Eu abro o nome do meu pacote. Eu tenho minha atividade principal aqui. Esta é minha luta de Cutlin. Primeiro, deixe-me mostrar o botão. Acho que podemos aprender alguns pontos e dicas lá. Por exemplo, eu quero adicionar meu botão, mas não consigo adicioná-lo no meu y linear. Eu apenas seleciono um deles. Estou aqui. Essa é minha linear. Por exemplo, se eu simplesmente copiar esse controle C e er aqui, control, eu tenho essa vantagem extra e altero o nome em um no final, então eu não tenho nenhum erro. Veja, todos os cinco botões estão juntos em uma linha. Por quê? Porque é um layout linear. Se eu adicionar mais cinco botões, ele tentará colocá-los em uma linha assim. Eu não quero isso. Quero meu botão aqui embaixo. E o botão grande, eu quero um botão grande para entrar no meu jogo. Deixe-me mudar esse nome para Ga. Agora, eu tenho o jogo BTN. Como eu disse, eles não podem ficar em cima um do outro e são como uma linha. O layout linear é horizontal ou vertical. Se for vertical, eles, a partir daqui, vão para baixo como uma linha. Mesmo nesse caso, eles não estão um em cima do outro. Assim, eles se sentam lado a lado. Então você não pode adicionar um botão extra aqui embaixo. É uma linha. Você pode até mesmo ter um layout linear para seu layout principal. Assim, eu apenas copio esse layout linear. Você vê esse layout de restrição. Se você simplesmente mudar para. Layout linear. Isso te dá um erro, eu tenho um erro. Qual é o erro? Você deveria dizer: qual é a sua orientação? Vertical, horizontal. Eu só quero usar essa cópia, horizontal ou não vertical, porque queremos estar de cabeça para baixo na vertical Sim. Temos isso depois daquilo, isso, isso, depois daquilo, eles são um no outro. E nenhum deles está em cima do outro. Mesmo quando dizemos horizontal, você vê que eles estão fora. Deixe-me colocar meu mouse aqui. Você vê à direita, eles estão fora. Por quê? Porque eles não podem ficar em cima um do outro. De qualquer forma, apenas controle Z, controle Z. B, de volta, de volta. Eu o troco de volta. Layout de restrição. Ok, meu jogo BTN. OK. Deixe-me minimizar isso, minimizar isso e os outros. Eu apenas minimizo todos eles e copio esse botão. Eu quero esse botão. Controle X. Porque eu quero colocá-lo fora desse layout linear Então, minimize esse layout linear. Onde devemos colocá-lo aqui. Ou podemos simplesmente ir aqui. Outro inter e controle. Você vê que ele aparece no canto superior esquerdo e apresenta um erro porque diz que você não o conectou a nenhum lugar. Esses quatro círculos são brancos. Você deve conectá-los a algum lugar. Esse é o layout de restrição. Você deve conectar esses círculos brancos em pelo menos dois deles, um lado, um lado, pelo menos um lado. Por que eu o coloquei aqui para te mostrar. Veja, está aqui. Se eu apenas controlar x e colocá-lo aqui, em vez disso, controle. Existe alguma diferença? Não. Porque não importa onde você coloca esse objeto aqui ou aqui. Fica no canto superior esquerdo até que você diga ao seu objeto, onde deve ser conectado o tamanho do objeto. Devemos conectar os lados do objeto a ele, não importa onde e como está nossa orientação. Ele apenas mostra tudo o que você não especifica onde mostrar no canto superior esquerdo. Mas isso não acontece em uma configuração linear. Você vê em uma configuração linear, deixe-me mostrar que este é o nosso ponto negativo Essa é nossa divisão. Se eu controlar X cortar essa divisão e controlar V, nossa divisão agora está antes do negativo E novamente, controle x, coloque-o de volta porque no layout linear. Primeiro, você não especifica onde esses botões são exibidos, eles são mostrados por sua orientação. Como você os classifica. O primeiro objeto mostra o primeiro objeto, segundo objeto, o terceiro objeto, o quarto objeto. Esse é um layout linear. Mas com restrições, não importa. Você deve se conectar e especificar como ele foi exibido. Oh, isso é layout restrito. Deixe-me conectar da vista do círculo superior ao inferior desse layout linear. Eu ainda tenho minha flecha. Por quê? Porque eu também deveria especificar a esquerda ou a direita do meu objeto. Estar conectado a quê. Então você vê o código, basta adicionar minha restrição de layout de código de cima para baixo , layout linear Deixe-me escrever o código para o próximo. Então, comece pelo início do que ID é o layout linear. Então, minha esquerda é onde o layout linear esquerdo está conectado a isso e minha parte superior está conectada à parte inferior desse layout linear. Eu clico aqui e não tenho nenhuma seta. Por quê? Porque eu digo que minha horizontal e minha vertical, pelo menos um ponto em cada um deles, se conectam a onde. Pressione press press inter aqui. Deixe-me dizer n de ponta a ponta e pressionar também no layout linear e remover isso. Veja, é ainda mais rápido. Quando você se acostuma a digitar, às vezes é ainda mais rápido do que você deseja conectá-los aqui e é mais fácil porque eu tenho mais controle e sou mais específico Agora, basta um anúncio STR, mudamos para o jogo STR. Não temos nenhum jogo STR. O que devemos fazer? Não podemos pressionar e inserir ou apenas esse fardo de luz, digamos, queremos criar essa string Nós apenas copiamos tudo isso e clicamos aqui. Crie também para árabe. Eu simplesmente escrevo o jogo e pressiono. Agora eu tenho meu botão de jogo, como você pode ver, deixe-me apenas esta mão, você pode movê-lo com esta mão com este botão, um ajuste na tela, e com este botão 100%, e. De qualquer forma, só um pouco, você quer dizer, por quê? Porque eu quero te mostrar com esta mão, este é o jogo, meu botão de jogo. Agora, onde está esse projeto de string, recursos, valores, strings, minha string em inglês, padrão e árabe Inglês, este jogo é árabe. Também podemos traduzir esse árabe. Deixe-me minimizar essa baixa, perder isso e ampliar para caber na tela. Nós temos peso. Isso é para layout linear, mas não estamos em layout linear. Nós apenas copiamos todas essas coisas. Então remova isso. Então , é conteúdo envolvente. O que significa conteúdo embrulhado? Significa ocupar o espaço que você precisar. Como você pode ver, ele escreve, a visualização deve ser grande o suficiente para incluir seu conteúdo Claro, além de adicionar. Este é o conteúdo do meu embrulho, desse tamanho. Esse tamanho. Mas sobre o que estamos falando? Eu digo zero d p, vai da esquerda para a direita. Esse dP zero funciona quando temos layout de restrição ativado como nosso pai Camada, como podemos ver, temos um layout restrito, então podemos dar zero DP Então, nos conectamos à esquerda e à direita. E se for removido de ponta a ponta? Não funciona mais. Você tem zero DP e ele funciona somente se a esquerda e a direita estiverem conectadas, e o controle esquerdo X não funciona, só funciona quando a esquerda e a direita estão conectadas Deixe-me mostrar você em nossa visualização de texto. Esta é a nossa visualização de texto, abra isso e temos zero DP e fale sobre isso aqui Se eu disser embrulhar conteúdo? É muito pequeno, adere aos nossos dados. Se eu disser match parent, é muito grande. É do nosso ponto de vista. Veja, está na nossa visualização de texto. É muito grande. Como posso ter um tamanho perfeito zero d p. Não tenho interferência na minha visualização de texto. Eu também minimizo isso. De qualquer forma, meu botão. Só mais uma coisa, eu disse os números? Se eu disser, por exemplo, em vez de zero DP. 100 DP. Você vê um tamanho fixo, mas não é bom. Que tal 200 DP dois B 2202 B para um pequeno 20 DP para Você vê, eu não consigo decidir o que devo fazer? Mas zero DP é perfeito. Só para você saber, você tem esse zero para isso. Mas, como eu disse, você deve conectar se quiser usar para altura, círculo superior e inferior em algum lugar, então você pode usar zero DP. E quando você usa zero DP, isso significa conectar-se à esquerda e à direita E para a cabeça, conecte-se à parte superior e inferior. Como você pode ver, eu me engano porque essa visão está sob essa visão de texto. Por causa disso, eu apenas cortei isso e coloquei aqui. Porque, como falamos, no layout de restrições, não importa a ordem desses botões, porque eles se conectam entre si pela restrição inicial ou final e pelos outros pela restrição inicial ou final e pelos É melhor eu encomendá-los do jeito que os vejo. Por exemplo, isso antes disso, esses e antes disso isso. Claro, antes deles, meu botão. Caso contrário, posso ficar confuso, temos nosso botão. Queremos escrever código, porque queremos fazer algo quando clicamos em nosso botão. Eu vou atrás do PT e aqui, aperto inter. Eu escrevo Bt N. Eu tenho cinco botões agora, porque eu adiciono o jogo TTN. Se eu clicar no jogo BTN, o que é clique em Mas defina desclique no ouvinte e aqui, assim Agora, eu posso escrever meus códigos aqui. Eu seleciono a coisa errada, mas deixe-me mostrar para você. Se você selecionar o outro, desclique no ouvinte. Por exemplo, no primeiro, basta remover a coisa extra e adicioná-la. Por quê? Porque não queremos fornecer nenhum parâmetro a isso no momento para esse código. Como você pode ver, você pode ter um conjunto diferente no ouvinte de cliques, porque podemos escolher entre eles. De qualquer forma, se você selecionar o outro, simplesmente, por exemplo, este, desculpe , por exemplo, este, basta remover isso e adicionar isso. Nós trocamos e nove e, se não adicionar a parte de fechamento, deslocamos e zero no teclado. E você se lembra que, já que escrevemos isso, não precisamos dizer vincular que mark D PTN game e outro ponto de interrogação e outro Nós escrevemos facilmente o jogo PTN. Mesmo assim, não precisamos escrever perguntas aqui, simplesmente com facilidade. E também, acho que você se lembra do find view by ID de que devemos escrever muitos códigos para encontrar nosso objeto. Mas não queremos escrever isso aqui também. Nós apenas usamos nosso nome PTN. Então, se você estiver aí, clique neste botão, quero abrir nossa outra página, outra visualização. Vamos fazer isso no próximo vídeo. Então, não fazemos esse vídeo muito longo. Obrigado. 52. Dia 7: página do jogo: Página do jogo. Enquanto falamos sobre isso, precisamos de uma página como essa e, no vídeo anterior, apenas conversamos sobre cada parte do que fazer? Ok, vamos continuar. Projeto aberto. Nós temos isso aqui. Se você ver isso parte por parte, basta clicar nesta opção, clicar nessas opções três aparências, pacotes médios compactos, como este, ou assim , assim ou assim. Nós o mantemos verificado. Então clique, temos isso aqui. Clique com o botão direito aqui, novo quê, nova atividade, que tipo de atividade? Esvazie a atividade de visualizações, veja o teclado ou simplesmente se mova. Não faça nada com os outros. Basta ir para a atividade. Ok, clique em exibir atividade em branco. Temos essa página que nos ajuda a criar nossa nova atividade. E se eu remover esse número dois e fornecer essa atividade principal, eu disse que o nome da atividade deve ser exclusivo. Você já tem essa atividade principal. Você não pode ter duas atividades principais. Vamos escolher um nome diferente. Por exemplo, atividade do jogo. Como você pode ver, coloquei uma letra maiúscula para começar cada w. E, como eu já disse, se eu pressionar espaço, isso me dá erro, então não há espaço. Como ele já verifica gerar um arquivo de layout e, se for verdade, um arquivo de layout será gerado, o nome do layout vem com base em nossa atividade. E na maioria das vezes eu deixo assim porque faz sentido. Deixe-me tentar isso aqui também. O espaço me dá erro, então não há espaço. É minha atividade padrão? Quer dizer, se eu executar o aplicativo, essa atividade é a atividade principal, não, não é. Então, eu não verifico essa atividade do lançador. Obviamente, não vou mudar o nome do meu pacote e meu idioma continua sendo cutlin porque vamos ensinar cutlin neste O que agora você vê esse acabamento, pressione este acabamento. Agora temos nossa nova atividade de jogo, nossa nova atividade. O que temos na atividade de layout subjacente ao jogo? Minimize isso e nós o teremos aqui. De qualquer forma, eu apenas comento essas linhas. O que nós queremos? Queremos iniciar a atividade principal no jogo BTN. E quando clicamos nesse jogo BTN, ele nos leva à nossa atividade de jogo, aquela visualização chamada jogo de atividades ML Eu escrevo para iniciar a atividade. Inicie a atividade. Ele precisa de informações. Falamos sobre entrada em funções. Portanto, devemos dar uma contribuição a isso. Que tipo de entrada? Precisa de intenção. Então, se você continuar com isso pressionar control e pressionar o botão esquerdo, verá isso. Você tem dois tipos de entrada aqui. Você pode simplesmente colocar uma intenção e também pode colocar outra coisa depois dessa intenção. De qualquer forma. Eu só digo para obter mais informações. Se você quiser ver quantas opções você tem? Vá nessa coisa. Pressione control e clique e veja quantas declarações você tem para esse método. Então, vamos completar esse comando. Clique aqui e escreva em dez contextos de aplicativos, e apenas o botão grave na classe de atividade do jogo M, Java não se lembra. Não esqueça esse ponto. Deixe-me explicar de forma muito simples. Preste atenção, preste atenção. Com intenção, eu digo, o que eu quero fazer? Essa atividade inicial pode fazer muitos tipos de coisas. Mas eu quero dizer o que eu quero fazer. Desde que a intenção curta da história me ajude a me comunicar entre diferentes componentes De várias maneiras em meu programa, e ele faz muitas coisas diferentes, então não quero complicar as Então, vamos usar essa intenção para navegar entre diferentes atividades em nosso aplicativo Queremos conhecer esse tipo de uso da intenção por enquanto. Nosso primeiro parâmetro usa contexto. Não vamos falar sobre o contexto, basta selecionar isso e escrever isso na atividade principal do sign. Nossa principal atividade é ir aonde é a atividade do jogo. Não se esqueça desse separador. Está ao lado de M. Se eu remover esse controle Java X, isso me dá um erro de não ok. Se eu remover Ks, isso me dá um erro de não ok. Basta escrever assim. Mesmo que você tenha esquecido um desses, isso lhe dará um erro Para escrever isso, você deve pressionar Shift e o botão gravar no, sem mais nem menos. Então, por exemplo, essas peças são fixas. Se eu tiver outra página, por exemplo, atividade de login, queremos acessar, por exemplo, temos atividade de login. O que devemos escrever aqui? Facilmente. Você vê essa linha de corte O nome do nosso código de corte, nós o escrevemos aqui Nenhuma atividade subjacente ao jogo, não, não, não. Nossa linha de corte é boa. Nosso arquivo cutl, atividade do jogo, atividade esta parte é corrigida, mas esse é o nome do nosso arquivo de linha de corte , a segunda parte e a primeira p e a primeira parte, como dizemos, extrai um contexto de Contexto do aplicativo. Todas as atividades têm um contexto de aplicação. Por exemplo, nossa atividade principal, até mesmo nossa atividade de jogo e todas as outras atividades que podemos criar, têm isso. Deixe-me esconder isso. Todos eles têm contexto de aplicação, todos eles. Esse é o meu contexto. O que é contexto? Não se preocupe com isso por enquanto. Mas se eu quiser fazer com que seja o mais simples possível. É um nível muito iniciante e eu tento ser o mais simples possível. Esse contexto de aplicativo tem alguns dados , alguns dados internos dessa tarefa do aplicativo e até mesmo de onde essas tarefas vieram. E até mesmo as opções, não as configurações dessas tarefas Portanto, muitos desses dados nosso aplicativo estão nesse contexto de aplicativo. É algum tipo de variável. Ok, deixe-me dizer, essa é uma variável que tem alguns dados dentro. Da nossa tarefa de aplicação e das informações dessas tarefas. Por exemplo, configuração e histórico dessas tarefas. Sim, é muito melhor. Resumindo, esse contexto de aplicativo é uma variável. Ele tem um conjunto de dados e esses dados para nossas tarefas, e até mesmo nossas tarefas, históricos, deixe-me limpar isso Mas, como eu disse, você não precisa saber apenas você deve saber que sua intenção, onde está nossa intenção Nossa intenção precisa de um contexto. Então, damos essa intenção, nosso contexto de aplicação. Assim mesmo, e lembre-se, temos muitas outras coisas com esse contexto. Nós o usamos de várias maneiras, muitas vezes e em muitos outros lugares. Então não se preocupe. Usamos muito e você se familiariza com isso. Para uma estrela e por enquanto. Qualquer função que precise de um contexto é mais fácil porque, na maioria das vezes, está tudo bem. Nós damos a ele o contexto do aplicativo. Você pode escrever essas coisas em algum lugar ou simplesmente veremos muitas dessas coisas em vídeos futuros e você entenderá. O contexto do aplicativo é para essa atividade. Então, queremos alterá-lo em vez de dizer o contexto do aplicativo porque queremos dizer, essa atividade, deixe-me dizer isso no sign main activity. Qual é a atividade principal? Essa é a atividade principal. Então, quero dizer essa atividade, pegue essa atividade principal. Faça essa atividade, seja qual for o nome dessas coisas. Essa é a atividade principal. E não se esqueça disso no sinal. No sin shift e número dois no teclado ao mesmo tempo, primeiro pressione shift e depois o número dois. Desculpe se algumas dessas coisas você já sabe, eu realmente quero que você aprenda muito bem. Isso é muito importante. Você deve aprender muito bem. OK. Então, deixe-me explicar mais. O que diz quando eu escrevo isso? Isso significa isso. É uma palavra em inglês. Isso significa isso. Isso é o quê? Isso, essa coisa, essa coisa que acabei de entrar. Ok, o que você quer disso? Eu quero uma atividade principal a partir disso. Então, quero dizer essa atividade principal. As palavras exatas em inglês. A partir dessa atividade principal, quero ir para onde? Eu quero ir para a atividade do jogo. Aqui, atividade do jogo. Você sabe por que eu expliquei isso , porque esse tipo de equipe são as equipes, meus alunos perguntam nas aulas. Pergunte o que você quer dizer com isso? Quero dizer, simplesmente a partir dessa atividade, vá para essa atividade. Esta é a minha atividade na qual eu já estou. Deixe-me revisar. É um vídeo longo. Repetimos isso muitas vezes. Queremos fazer alguma coisa. Queremos iniciar a atividade e dizemos que temos essa intenção de dizer o que queremos fazer? Como dizemos, usamos essa intenção para navegar entre as atividades no mesmo aplicativo Ok, de qual atividade, dessa atividade principal até qual atividade até a atividade do jogo, como dizemos, podemos dar a esse contexto de aplicativo, e ao contexto de aplicativo, dar exatamente isso. Porque o contexto do aplicativo contém isso. São a mesma coisa. Não se engane. Finalmente, escrevemos apenas uma linha. Vamos ver o que fizemos, Rn Dia. Ok, meu projeto acabou, e esta é minha calculadora e primeiro número, segundo número, meu botão de jogo. Se eu clicar neste botão do jogo, esse listener de cliques do conjunto de jogos BTN Então eu clico aqui. E vou para outra página porque começo a atividade. Qual atividade de onde para onde? De onde para onde. OK. Deixe-me ligar de onde para onde, de onde para onde da atividade principal à atividade do jogo. É melhor. Eu não deveria descrever isso. Não consigo fazer essas coisas por enquanto com uma simples máscara. Inicie outra atividade, vá de onde para onde, da atividade principal à atividade do jogo. Fácil PZ Está bem? Essa é minha nova atividade, minha atividade de jogo e, claro, atividade subjacente ao jogo em XML. Isso é aquilo. Sem corte. Você não consegue ver esse código de corte. Você pode ver esse código XML. Eles são diferentes. Isso é o que você vê. Essas são as coisas que os programas fazem por você quando você faz alguma coisa. As reações. Sim, deixe-me chamar isso de reações de código de corte ou coisas que você quer fazer e reagir. Sim, reações. Por que não? Deixe-me pressionar isso de volta. Você vê isso. E, novamente, você vê isso. Ok, termine, pare e minimize isso. E vamos entrar aqui. Divida isso. Vamos continuar com isso no próximo vídeo. Acho que esse vídeo ficou muito longo. Desculpe por explicar demais. Eu tentei resolver qualquer pergunta que você pudesse ter em mente. Obrigada. 53. Dia 7: organize objetos de página de jogos: Organize a página do jogo. Agora é 0.4 Crie esta página. Temos todos esses objetos os quais falamos no vídeo anterior. Agora queremos criá-los. No vídeo anterior, na atividade principal, clicamos no jogo e chegamos a esta página. Mas isso está vazio. Então, como podemos sentir isso? Precisamos inserir o primeiro número, o segundo número, para que o usuário possa inserir esses números. Nós apenas vamos para a atividade principal. Nós temos isso, e temos isso também. Deixe-me mudar a gravidade do início para o centro. Então, eles parecem iguais. Deixe-me copiar esse estilo também do segundo no primeiro colado e remover as linhas vazias extras Então, eu também copio esse estilo do segundo . Então, eles parecem iguais. Eles são parecidos agora. Agora, eu fecho quilos, quilos, e vamos copiar isso Controle C, e aqui, jogo de atividades inter control, e remova esse comentário que acabamos de trazer conosco Eu tenho esses dois textos de edição. Acabei de copiar isso, mas você também pode digitá-los. Porque é melhor para aprender que você digite e forneça cada uma dessas propriedades. É uma boa prática. Por favor, digite essas coisas o máximo que puder. Então você pode aprender o que são esses. Como eu disse, você deve escrevê-los o máximo que puder. Mas para não perder tempo ensinando, basta selecionar este botão. Este é o meu botão e controle C, controle V e, claro, minimize isso. Como acabei de copiar, isso me dá um erro, porque não tem nenhum layout linear aqui. Então, o que é esse botão? É o início do PTN, e eu também altero o texto para começar. Como você pode ver, eu não tenho nenhum começo. Então, pressione inter ou pressione essa luz b, crie um valor de fluxo para esse recurso Verifique também o árabe porque eu tenho dois idiomas. Qual é o nosso valor? Começar. Eu pressiono. Então, é claro, como eu não tenho um layout linear, devo dizer que esta é minha segunda entrada. Eu quero esse layout de entrada de ID em segundo lugar. Acabei de copiar isso, mas você pode digitá-lo em vez dessa camada linear. Essa camada linear, eu acabei de colar. Claro, na parte superior e inferior do que, eu não tenho uma camada linear, então insira o layout em segundo lugar. Mesmo quando você aprende muito, às vezes é melhor digitar, para não esquecer as coisas. Da esquerda, conecte-se à esquerda, da direita, conecte-se à direita e, de cima, conecte-se à parte inferior. Você vê que depois do botão Iniciar, também temos uma caixa. Então, copiamos isso assim e vamos até o final e colamos lá. Tem um erro, o que diz? Nosso nome é problema. Layout de entrada, como devo chamá-lo? Nosso número de estagiário está aqui. Digamos que adivinhe, porque o usuário adivinha o número e, claro, DT, Sim. Você vê esse bar de luz? Se eu entrar aqui, o bar de luz sumiu. Às vezes, temos alguns erros, mas eles podem ser do Andrew Studio. Por exemplo, se eu clicar em outro lugar, os erros desaparecerão. Isso acontece. E está tudo bem. Cada nova versão do Andrei Studio chegava e os bugs diminuíam cada vez mais E, claro, eu tinha esse PTN começando e onde deveria estar de ponta a ponta do meu botão, do início ao início do meu botão e dois primeiros de cima para cima do meu botão Mas, como você pode ver, se eu disser de cima para cima do meu botão, minha caixa de texto e meu botão b ficam um em cima do outro. O topo disso é igual ao topo desse botão. Então eu acho que devemos mudar isso. Deixe-me dizer de baixo para cima. E se esse tipo de coisa acontecer, você pode simplesmente selecionar daqui até aqui para remover a peça extra. Então, de cima para baixo desse objeto, eu só digo de cima para baixo. Algo mais, deixe-me dizer int? Oh, eu só tenho uma dica. Primeiro número, não, não, não. Deixe-me mudar isso também. SC R. Seu palpite. Então, acho que não tenho uma suposição de SRO Vamos apenas criá-lo e também em árabe. Vamos apenas escrever seu palpite. Bem, deixe-me mostrar, nós temos as cordas. Basta verificar. Coma seu jogo de convidados e jogos árabes fortaleça seus convidados. Nós temos isso. Klose isso, Klose aquilo, minimize isso . O que vem a seguir? Temos esse botão, esse relatório. Vamos continuar. Então, o próximo é o nosso botão. Esse padrão, nós apenas copiamos isso e no final disso. Eu só colo. Claro, é PTN. Por exemplo, go é um bom nome, eu acho, e uma mensagem de texto não é mais um começo. CR vai. Agora eu não o tenho, então vamos criá-lo. Vá e não se esqueça de verificar esta foto e. Então, está na parte superior do outro botão. Deveríamos ser? Eu tenho essa lacuna de layout de entrada, controle C e altero essa suposição de layout de entrada para um estado de e para o final da lacuna de layout de entrada e cima para baixo da guia de layout de entrada Então, meu botão Go está agora aqui. E deixe-me mostrar que se eu escrevo EDT, adivinhe, o que aconteceu? Controle C, se eu disser gás EDT, isso me dá um erro porque eu não posso fazer isso Eu deveria controlar C, adivinhe o layout de entrada. Porque não temos nenhum gás EDT. Temos apenas uma estimativa do layout de entrada para conectá-los. Veja se eu seleciono engrenagens EDT, elas não têm esses círculos brancos Veja, mas o outro tem esses círculos. Ele pode se conectar para se conectar a algo, mas este não pode se conectar a nada. Por pouco tempo de armazenamento, nosso resumo está dentro de outro objeto Por causa disso, não podemos acessá-lo, e você pode dar sua parte superior para baixo outra coisa com base nas coisas que estão dentro do seu layout de restrição Não nas outras coisas. Então, eu posso dar layout de entrada em segundo lugar. Porque está dentro do nosso layout de restrições. Mas se estiver em outra coisa, como esse segundo valor de DT, não posso mais fazer isso. De qualquer forma, como eu disse, você não consegue mais ver esse erro, por quê? Porque leva tempo para partir daí e você pode clicar em outro lugar e voltar e ver até mesmo que não está mais à esquerda. Antes da parte central, lembro que temos o resultado na parte inferior e também criamos o resultado aqui. Então, vamos copiar isso. Minimize isso, minimize isso e, claro, essa visão, isso e isso. Acabei de copiar o controle C desta camiseta. Por favor, digite o máximo que puder, mas eu não estou aqui, então você não desperdiça o controle V. Nós o temos aqui agora. OK. O que sobrou? Esse relatório e esse botão. Ok, eu estou aqui. Vamos apenas digitar este e ver o cartão. Acabei de escrever CA e seleciono essa visualização de cartão. Basta verificar novamente. Visualização do cartão Android X Visualização do cartão Widgit. OK. Está tudo bem. Acabei de selecionar Match patent. Está ativado por padrão e, claro, empacota o conteúdo. Isso me dá um erro porque não se conecta a nenhum lugar. Mas primeiro, eu deveria fechar isso. OK. Shift e o botão direto para o M, e uma barra que está ao lado de Shift para baixo para a direita dos botões do teclado, para a esquerda para o botão Shift, eu apenas pressiono e ele grava o resto para mim Vou começar com isso e inter. Eu fecho isso. Eu simplesmente esqueci Eu não fecho isso. Mude e maior. Eu escrevo que, para mim, sem mais nada, eu deveria remover isso e o inter dela Então, agora em cima, não aqui, mas aqui de cima para baixo de B e pronto. Deixe-me fazer isso de novo. Eu apenas escrevo a restrição de cima para baixo. Para isso, eu simplesmente escrevo o final e ele me dá os quatro. Eu pressiono inter no primeiro, pressiono J e tenho BTN assim. E se eu quiser te mostrar de novo, não me lembro disso. Você vê? Eu só quero te mostrar de novo, como escrever isso se eu não tiver. Por que eu não tenho isso? Porque eu acabei de escrever isso. Mas se eu não escrever, não consigo encontrá-lo. E G BT. Entenda, se você já escreveu, não consegue encontrá-lo, isso o engana Você fica confuso porque eu quero te mostrar e não consigo encontrá-lo, fiquei confuso. Porque na programação normal, eu não deveria escrevê-lo muitas vezes. Comece a começar do quê. Por exemplo, P parent. Pressione P e depois patenteie e, claro, ponta a ponta de ponta a ponta do que pai novamente. Vamos dar uma margem também. Aqui, margem, aquele sinal g. Já que chamamos isso de margem normal aqui, eu deveria dizer margem normal. Acabei de verificar o nome. Dê uma margem normal. Se você receber nomes diferentes em projetos diferentes, poderá ficar confuso, como eu. Essa também é outra dica. Na exibição de cartões, você só pode colocar uma camada secundária. Então, vamos entrar aqui. Então eu coloquei uma camada principal. Deixe-me te mostrar. Por exemplo, acabei de escrever CO N, e a primeira é restringir o layout e combinar o conteúdo principal e o rack, fechá-lo também, inserir e clicar aqui na altura média, por exemplo, Acabei de dar a esta carta a elevação máxima do cartão de visualização. E eu apenas digo que esclareço isso e escrevo ação suficiente, e eu não a tenho. Então, dê oito, se você esqueceu de colocar DP depois disso, veja, você acabou de colocar Você veio aqui e colocou DP. Essa também é uma mensagem comum. Pode minimizar isso, voltei. Agora tem oito DP. Agora, basta pressionar inter e A e dar o raio Eu apenas pressiono inter e D. Então eu posso dar um raio, eu acho, e ele não tem E crie este também. R. Não esquecemos de colocar DP. Se o fizermos, vamos colocá-lo lá. Também temos esse ADP. Você vê que meu erro não desapareceu. Mas se eu clicar aqui e ele voltar, meu erro não está lá. É um simples pântano. Não se preocupe com esse tipo de pântano. Está tudo bem. Agora, vamos executar nosso aplicativo. Ok, executamos isso em 7 segundos, escondemos isso e pressionamos o botão do jogo. Nós temos essa página. Deixe-me ampliar. Você vê nosso primeiro número, segundo número, nosso botão Iniciar, seu botão Adivinhar e Ir, e esse carviw Acho que você não vê claramente a visão do meu carro. Deixe-me parar meu aplicativo e minimizar isso para te mostrar melhor. Primeiro, eu deveria dar um histórico no topo aqui. Por exemplo, aqui, eu apenas digo fundo preto. Eu acho que você vê isso melhor. Nós apenas dizemos fundo, preto, para que você possa ver meu cartão e só queira . Eu só quero mudar este rádio. Então você pode ver o que é? Controle X, qual é melhor maneira de aprender do que ver o que acabou de acontecer. Por exemplo, 50 DP ou até mais. Você vê os cantos, eu dou mais 90. Você vê que nossa esquina é assim. Vamos colocá-lo de volta. Controle, nós o colocamos de volta. Se não dermos esse Controle X, ele é muito nítido na esquina em 90 graus e pontudo. Por causa disso, damos oito dp. Vamos limpar o fundo também. Remova isso de volta. Agora você vê nossa visualização de cartas. Podemos usar a visualização do cartão de material. Como o botão e outras coisas, ele tem mais ferramentas, opções e possibilidades. E o Android Studio e o próprio Google trazem isso para nós. Então, eu apenas escrevo a visualização do cartão. E em vez dessa visualização de cartas, eu desço. E a segunda, eu tenho a visualização do cartão de material, como você pode ver, e o próprio estúdio Android colocou essa parte final da visualização do cartão de material aqui também. É muito bom e facilita meu trabalho. Porque se não, eu deveria vir aqui e trocá-lo também. Como já dissemos, se temos material para o objeto, tentamos usar material para esse objeto. Mas eu só quero te mostrar um objeto normal também. De qualquer forma, a visualização de cartas, como dissemos, nos dá uma caixa , um lugar , por exemplo, veja, precisamos de pouco espaço. Por exemplo, tanto espaço para nosso relatório. Por causa disso, adicionamos nossa visualização de cartão. E adicionamos material porque ele pode ser mais bonito e ter mais coisas. Então eu simplesmente desço. Eu tenho meus táxis de visualização de texto, sim. Acabei de copiar essa visualização de texto. Controle C e coloque-o no meu layout de restrição dentro da minha visualização de cartão Deixe-me abri-lo. Quero dizer de cima para cima dos pais, é claro, e, claro, de ponta a ponta dos pais, e começar do meu pai, deletar um pouco. E desculpe uma patente patente. Isso mesmo. Agora , tem essa aparência. Eu não quero usar ferramentas aqui. Eu quero dar isso e tributar. Porque eu não quero ferramentas agora. Porque, como já falamos, as ferramentas são para mim o programador Agora, levante a corda, remova-a, controle o espaço. Eu quero colocar uma corda. Nome. Não, claro que não. Claro que não. Eu apenas pressiono inter, então tenho a string Slash no sinal e removo essa parte e digo STR Mas ele não reconhece nenhum relatório de SCR. Vamos criar um e verificar também, relatar e. Agora, diz relatório e, claro, nossas identidades relatam trabalho. É nosso nome, nosso nome do objeto. Podemos acessar esse objeto com esse ID com esse nome. E não zero dP. Basta capturar o conteúdo. Está tudo bem. E mais uma coisa, preciso de um botão. Esse botão de ir. Deixe-me copiar isso e trazê-lo aqui e mudar o nome para BTN. Relatório e, claro, STR. Relatório. Quero dizer de cima para baixo, mas preciso dar uma identificação a isso. Você vê? Eu não tenho identidade. Então eu não posso dar ao outro objeto o endereço, o nome dessa coisa. Então, o que devo fazer? IDENTIFICAÇÃO? O que é o ID? Claro, é um cartão, então cartão. É para reportagem. Então, faça um relatório e vamos descer. Aqui, de cima para baixo. Qual relatório do cartão, restrinja de cima para baixo, relatório do cartão e esse conteúdo do rack com DP zero Ou deixe-me ter aquele DP zero. Está tudo bem. Acho que é o suficiente para esse vídeo. Continuamos no próximo vídeo. 54. Dia 7: outras mudanças na visão: Outras mudanças em vista. Ok, o que temos? Queremos todas essas coisas e também queremos que essas três sejam escondidas. Bem vindo de volta. Vamos entender isso um pouco. Acabamos de voltar à visualização do cartão de material. Falamos sobre esse rádio. Eu fiz isso errado. Eu não deveria usar a elevação máxima. Eu deveria usar o cartão apenas de elevação. Por quê? Porque eu quero minha sombra. Você vê essa sombra. Eu apenas clico lá em cima para desmarcar e você vê a sombra Como escrevo elevação máxima, escrevo errado e não entendo essa sombra Vamos executar o aplicativo. Acabei de clicar no botão do jogo. Ok. E você vê a sombra. Deixe-me ampliar mais. Você vê a sombra. Se você executar write qualquer outra propriedade, também poderá não obter o bom resultado. Esse é outro ponto. Deixe-me parar com isso e voltar a Ding para ver se eu desse mais do que esses oito. Por exemplo, controle X, por exemplo, 40. Você vê quanto mais sombra eu tenho ou 20 DP ou 10 DP. Você pode ver a diferença ou até mesmo um DP. A sombra desapareceu, quase desapareceu, dez DP. Eu o coloquei de lado para que eu possa te mostrar. Mas você entende o ponto. De qualquer forma, eu só controlo uma parte vermelha. Veja, na maioria das vezes, eu uso algum número predefinido em minha mente Por exemplo, quatro, oito, 16, 24. Por exemplo, isso é oito. Se eu quiser menos, coloco quatro. Se eu quiser mais, coloco 16. Está na minha mente, está na minha mente e é minha regra. Você pode definir outra regra. Por exemplo, você pode dizer cinco, dez e 20. Está na sua. Mas é melhor usar o mesmo número em todo o projeto. Como você pode ver, se eu abrir este projeto e te mostrar os diamantes Mesmo neste sete, coloque 88888. Se eu quiser dar outras coisas, eu digo 16 ou quatro ou 24, eu digo números específicos. Então, sempre outras equipes têm quase o mesmo alcance. Por exemplo, para um pequeno, eu coloco quatro, para grande, eu coloco um número específico. E para cada projeto, às vezes eu anoto esse número específico. Eu sei que essa é a minha gama. E como você pode ver, na maioria das vezes são oito, quatro ou 16. Deixe-me fechá-lo também. Só para te lembrar, eu só sou um a um. Essa visualização de cartão ocupa apenas uma camada. Dentro dele, eu coloquei esse layout de restrição, para que eu possa colocar muitos objetos dentro Por exemplo, se eu colocar mais um objeto ao lado desse layout de restrição Por exemplo, é preciso. Deixe-me controlar C, controlar V. Não está bem. Então, como eu só deveria colocar um objeto dentro deste cartão, você, eu coloco esse layout de restrição e dentro desse layout de restrição, eu organizo meus objetos assim. De qualquer forma, vamos continuar Temos essa visualização de texto. Eu vim aqui e pressiono inter logo após essa gravidade, eu digo texto texto história Eu tenho três opções diferentes. Veja se eu digo itálico, deixe-me dizer para que você possa ver isso melhor aqui Se eu disser que esse itálico ficou assim um pouco para a direita Se eu disser ousado, ficou assim, ficou ousado. E normal, é simplesmente normal. É melhor você não escrever porque isso já é normal. De qualquer forma, eu quero ousado para que pareça um pouco mais forte e maior. Então, deixamos isso um pouco ousado, e também quero mudar o tamanho. Então eu digo tamanho do texto. Você vê esse tamanho de texto? Por padrão, é 14 dP. Você vê 14 d p por padrão. Deixe-me controlar X. Ok. Veja, e depois controle V. Eu deveria apenas cortar a linha inteira. Controle X. Controle V. Não há diferença. Por quê? Porque é padrão. Você pode dizer, por exemplo, 20, ficou maior ou 40 realmente maior Depende de você, como você quer que isso pareça, o que, como eu disse, se você der 14 como padrão. Então, se você quer ser maior, você deve ter mais de 14 anos. Se você quiser ser menor, coloque um número menor que 14. Então, como eu disse, gosto de escrever 48 ou 16. Então eu dou se eu quiser mudar isso, eu dou 16. Isso me dá um aviso. O que diz isso? Ele diz que deve usar SP em vez de DP para tamanhos de texto. Deixe-me mudar para Sp. Mas o que acabou de acontecer? Em telefones Android, ao acessar a configuração, você deseja alterar os tamanhos. Você pode torná-los maiores ou menores. Como você pode ver, muitos telefones têm essa configuração no Android. Acho que quase todos eles. Se você alterar isso para SP, ao usar a configuração do telefone, altere o tamanho do texto do telefone, seu aplicativo e esse SP também mudará. Resumindo, com o SP, optamos pelo ajuste e configuração do tamanho da fonte. Por exemplo, se temos 14 e dobramos, temos 14 por padrão, dobramos, por exemplo, 28. Tornou-se o dobro dos outros. Quando você altera o tamanho da fonte de todo o telefone, seus tamanhos são relativamente aos outros textos em seu telefone que ficaram maiores ou menores. Espero que você entenda bem. Espero que você saiba o que estou dizendo. Resumindo, todos os tamanhos de texto que você usa devem ser SP, todos eles. Claro, depende de você. Você pode usar o DP, mas é melhor usar para todos eles, SP. Mais uma coisa. Nós temos essa margem. Sim, ganha muito do topo. Eu não gosto disso. Só do lado. Então eu mudo isso. Eu coloquei uma horizontal. Assim mesmo. Deixe-me selecioná-la e ver a direita. Agora eu faço isso para você. Veja a direita. Eu quero pressionar o controle X, S à direita. Essa é a diferença. Veja a direita, controle. Essa é a diferença. Você vê? Agora, se eu quiser, o normal é assim, e se eu quiser apenas do lado, é assim. É melhor, eu acho. Eu não quero muito espaço do topo. E somente espaços da mão direita para a esquerda. Deixe-me fazer a lista para você. Eu pressiono esse verde ao redor do botão. Então, deixe-me ver o que acabou de acontecer. Minimize isso e diminua o zoom. Vá para o jogo. Ok, eu tenho isso. É bom. É muito bom. Mas mais um mt. Você vê algum problema aqui? Você se lembra disso? Eu deveria esconder isso, isso e isso? Eles estão escondidos. Deixe-me voltar ao código. Como vemos, devemos esconder isso, isso e isso. Mas agora acabamos de vê-los. Eles não estão escondidos. Agora, deixe-me parar com isso? E minimize isso e amplie , é claro, 100%. E seu palpite, eu tenho isso. Devo escrever algum código aqui dentro desta entrada de texto e editar texto? Claro que não. Você vê esse layout de entrada de texto. Aqui eu clico no layout de entrada de texto. Depois desse empréstimo, eu pressiono lá. Eu digo, Visibilidade. Só com essas três palavras, visibilidade, encontrei visibilidade. Qual deles você acha? Deixe-me explicar isso para você. Como eu disse, você vê o quão rápido eu escrevo isso ainda mais rápido do que você gostaria de tentar encontrá-lo em atributos. Deixe-me verificar isso novamente. Eu tenho visibilidade inter, sem mais nem menos. Isso é muito mais rápido. Quando você se familiariza com códigos diferentes, acredito que na maioria das vezes é mais rápido do que trabalhar com esse modo de design. Além disso, tenho muito mais controle. Deixe-me ver quais são essas três opções. Eu tenho visibilidade. Deixe-me selecionar visível. O que acabou de acontecer? Nada, absolutamente, nada porque é padrão. Por padrão, meu objeto está visível. Então, nada acontece. O que mais eu tenho? Eu tenho espaço de controle. Controle X para cortá-los e controle o espaço para ver outras coisas. Eu tenho invisível. E eu fui embora. Eu só quero ver o que é essa arma. Eu sei que é invisível, mas o que é essa arma? Meu objeto acabou de sumir. Você vê o espaço. Não há espaço reservado para essa coisa. Desapareceu. Não foi feito nada. Mas que tal invisível? Deixe-me dar uma olhada nisso também. Controle X, espaço de controle. E eu tenho esse invisível. Você pode adivinhar. Sim, tenho meu espaço, mas meu objeto não está aqui. Viu como é bom? Controle X. Eu tenho isso Controle V. Eu não tenho isso, mas o tamanho não muda. Foi reservado para o meu objeto, e então meu objeto voltou. O botão go ainda está aqui. Por quê? Porque o espaço reservado. Deixe-me experimentá-lo. Então, eu quero fazer isso com o botão também. Então eu apenas seleciono esse controle C, desço. Este é o meu botão, e pressiono Inter Control, e eu apenas seleciono isso, excluo essa linha extra Meu botão também sumiu. Claro, eu tenho essa visualização de cartas aqui. Depois da margem, pressiono inter para essa visualização do cartão e outra visualização de controle Isso também sumiu. Deixe-me executar o aplicativo para ver o que acabou de acontecer. Agora, deixe-me minimizar isso e apertar o jogo. Veja, eu não os tenho mais. É bom. Agora, deixe-me parar com isso e voltar para nossa parte de estudar . Agora, o problema. Eu faço com que essa visibilidade desapareça para o usuário. Mas também não os estou vendo. Claro, eu ainda os vejo em código. Essa é a vantagem da visualização de código. E é muito difícil trabalhar com isso. Porque, como eu disse, não consigo vê-los e não consigo entender como são. Eu te mostrei uma dica extra em um nível muito iniciante. E se você esqueceu, eu te mostro novamente para que você entenda os temas que acabei de lhe dizer nas sessões anteriores, eles são básicos, fundamentais e muito importantes Deixe-me mostrar um exemplo. Eu apenas pressiono inter aqui e espero um segundo para ver, você sabe o que devemos escrever Sim? É claro. Ferramentas, ferramentas, visibilidade. E o que devemos dar a essas ferramentas. É claro que damos visibilidade a isso. O que acabou de acontecer, o que acabou de acontecer. O que usamos nessas ferramentas. Usamos essas ferramentas para ver coisas inalteradas apenas para o programador, só para mim Nem mesmo no emulador só para mim. Não é para ninguém, só para mim. Então eu posso ver isso visível. Mas mesmo que eu execute o aplicativo, minimize isso e clique no jogo. Eu não tenho isso. Por quê? Porque a ferramenta é só para mim. Você se lembra Você se lembra de onde o usamos? Esconda isso e, claro, pare com isso. Esses números acabaram de cair. Nós o usamos para ver quantos números cabem nesse resultado e apenas o tornamos visível para ver como b e como é a aparência do nosso cartão . Mas quando iniciamos o aplicativo, APK no dispositivo do usuário ou mesmo em nosso simulador, em nosso emulador, vemos que isso sumiu, e essa visibilidade é apenas para essa visão de design no momento Então, exatamente por causa disso, adiciono visibilidade às ferramentas do Android às ferramentas do usuário, para mim. Espero que você entenda bem. E você sabe que usamos todas essas coisas em uma visão muito básica, básica. Muitos outros lugares. Exatamente por causa disso, eu mencionei essas coisas lá. Agora, é claro, no nível iniciante, entendemos muitas outras coisas e no futuro, porque elas também são importantes Nós também os usamos. Portanto, aprenda-os com cuidado. Então, deixe-me copiar isso para selecionar isso. Controle, veja no seu teclado. E insira aqui o controle V e, claro, não a entrada de texto, edite o texto, mas o layout de entrada de texto Inter e controle V. Eu tenho todos os meus objetos de volta, mas só por enquanto e para mim Eu executo este aplicativo mais uma vez. Você não precisa executar isso tanto quanto eu. Eu executo este aplicativo porque me importo com você e gosto de mostrar o que acabou de acontecer. Então eu tenho esses objetos para ver o que acabou de acontecer, e eu não tenho esses objetos dentro. Desculpe nesta página. Vamos continuar no próximo vídeo. Então, escrevemos uma linha de. Kathleen Cats 55. Dia 8: escrevendo códigos de jogo primários parte1: Escrevendo os códigos primários do jogo, parte um. Este é o nosso aplicativo que queremos criar. Vamos continuar nosso aplicativo. Vamos para a atividade do jogo C T, para escrever códigos. A primeira coisa é que o usuário clica nesse botão Iniciar e, em seguida, verificamos o primeiro número e o segundo número está vazio. Deixe-me fechar esse e esse. Então, temos nossas duas coisas importantes e mudamos a barra de orientação. Pegue um, do outro lado ou do lado, desculpe, ou aqui. Assim, você pode organizá-los. Aqui está minha visão e aqui meu código Basta pressionar a tecla tab e tocar novamente para estar aqui. E eu escrevo nele, ouvintes, abro e permito. Eu não tenho essa função. Eu apenas clico nele. Eu e o Inter, criamos uma função ou aquela válvula de luz, fazemos o mesmo para fazer, eu apago isso para fazer Essa é minha função. Mas eu só quero usar a encadernação que já dissemos no nível iniciante Então, basta clicar aqui e pressionar inter. Eu escrevo encadernação. Que tipo de coisa é essa? A atividade é vinculativa? O ponto de interrogação é igual. Nulo. Então, eu apenas escrevo uma encadernação. O que é isso? A atividade é vinculativa? Por que a atividade se torna vinculativa, jogo de atividades, jogo de atividade , porque é minha visão, não minha opinião. O que devo fazer agora? Vejo que isso tem um erro. O que diz isso? Eu digo, eu preciso da moça, eu deveria importar essa classe Que tipo de classe? Eu deveria importar essa classe de encadernação de jogos de atividade. OK. Eu tenho o em minha atividade principal? Não tenho certeza. Deixe-me verificar. Eu só vou para a atividade principal. Minimize isso, suba. Esta atividade de importação é vinculativa principal. Vinculação principal da atividade. Assim, eu tenho atividades de encadernação de jogos. Apenas minimize essa importação e vá aqui, entre outras coisas, eu só quero separar isso Crie e, antes de definir o conteúdo entre, eu tenho essa vinculação porque quero que esse valor seja igual ao que é igual à atividade, vinculação do jogo. Eu apenas escrevo o inflate A dot e dou a ele o layout do inflador Se eu disser essa linha de código de forma muito simples, acho que poderia dizer que só devemos renderizar para pausar nosso layout. Então, nós a inflamos porque queremos analisá-la, queremos incluí-la em nossa vinculação Queremos sentir essa visão em nossa variável de vinculação e, por isso, sentimos que ela inflate o comando Queremos criar elementos, criar um elemento de visualização do nosso arquivo para que esse método, esse método inflate, faça isso E devemos dar alguma contribuição. E nós damos esse inflador de layout. Espero dizer isso de forma bastante simples. E com esse código e, claro, as atividades ganham vinculação. Faz parte da atividade, ganhe força. Damos a essa vinculação nossa visão, essa visão do jogo de atividades. Agora, o que devemos fazer, uma vez que preenchemos essa encadernação, agora podemos usá-la. Como essa vinculação agora é preenchida com nosso jogo de atividades, podemos usá-la em vez de nosso jogo de atividades. Este jogo de atividades de layout de recursos. Este é exatamente o endereço desse jogo de atividades. Veja, layout de recursos, atividades de layout de recursos, exatamente jogo de atividades de layout de recursos. Portanto, minimize isso. Agora, queremos definir nossa visualização de conteúdo e, em vez de abordar como jogo de atividades de layout de recursos porque sentimos essa ligação com todo o jogo de atividades que é o XML, podemos usar essa associação em vez de não apenas essa, já que ela é preenchida com toda a visualização, podemos usar vinculação e, claro, nosso ponto de interrogação e, claro, a rota. Agora, está tudo bem. Agora, nossa rota de vinculação, que é nosso arquivo de layout, está na visualização de conteúdo definido, e nosso conteúdo, que é esse jogo de atividade, está conectado à nossa atividade de jogo. Eu realmente espero que eu resolva isso de forma simples. E qual é essa rota? Essa é a nossa visão básica. A camada superior da coisa toda, etc., tudo isso Deixe-me dizer isso dessa maneira. elemento raiz é o elemento superior, acima de todas as outras coisas. Por exemplo, mesmo quando fazemos web design, se quisermos dizer em web design, qual é o elemento raiz? Dizemos que o elemento superior, por exemplo, em uma página HTML, tag HTML é o elemento toes. Então isso é raiz. E aqui na nossa encadernação, o que é raiz? Qual é a coisa mais importante? Claro, a página inteira. O lugar que contém todo esse XML é nossa raiz. Espero dizer isso de forma bastante simples também. Também devo mencionar que o definimos globalmente. Falamos sobre globalmente em vídeos anteriores porque queremos acessar essa variável em outros lugares, não apenas aqui. OK. Vamos voltar ao trabalho para ver se entendemos tudo isso e escrevemos isso. Agora, o que devemos fazer? Escrevemos um ponto vinculativo, desculpe, ponto de interrogação. Aplicativo Dot. Não se esqueça desse ponto de interrogação. Então, desde a aplicação, não repetimos esse ponto de interrogação. Vamos continuar. Agora eu escrevo pn, PN, Pn start dot set set set e clico no ouvinte Se de repente você escrever dois parênteses, remova-os e aperte o botão depois de P e Eu tenho meu C, defino e clico no ouvinte Lembre-se de que, se você esquecer isso e, claro, vincular, não terá o TNS start Você também deve escrever isso como uma encadernação. Não me lembro disso. Agora, acabei de mencionar isso. Deixe-me explicar mais. Comente isso novamente. Eu não tenho PTN start. Deixe-me controlar um espaço. Eu não tenho isso. O que devemos fazer nesse caso? Devemos escrever um ponto de interrogação vinculativo. Inicie o PTNS. Por quê? Porque devemos repetir essa ligação várias vezes. E como não queremos escrever isso, simplesmente escrevemos este formulário. E, claro, mesmo dito, coloque um ponto de interrogação. Veja, em vez desse ponto de interrogação e dessa encadernação, eu simplesmente escrevo isso, aplique de qualquer maneira. Eu só tenho um jejum com você. Esse nulo não significa nada. Criamos essa etiqueta nula vinculativa com esse ponto de interrogação. Colocamos esse ponto de interrogação aqui. Se esta ligação B for nula. Essa parte de aplicação não será executada e não temos nenhum erro. Então, clicamos nele. Resumindo, clicamos nele. O que deveria acontecer? Devemos fazer um jogo de atividades. Primeiro número, segundo número. Eles estão vazios ou não? Então, vamos escrever código, mas podemos fazer algo melhor. Deixe-me te mostrar. Abra este projeto, chegue a essa atividade principal, desça. Nesta atividade principal, você tem essa função privada daqui até aqui que não é uma entrada vazia. Controle C, então o que significa isso aqui embaixo, quando os ouvintes terminam, interno, agora, controle V. Eu apenas copio e colo para que você possa ver o quão fácil pode ser Mas você pode escrevê-lo para aprender melhor. Deixe-me mostrar o código. Esse é o código que você deve escrever. Mas não há problema em copiar e colar quando você sabe o que o código faz? Mas, de tempos em tempos, é melhor escrever um código e sair. De qualquer forma, o que isso faz? Diz que se meu primeiro valor de DT, esse texto significa que o texto que está dentro do primeiro valor de DT é t, faça esse primeiro valor de DT. O erro deveria ser esse. O que é isso? Deixe-me te mostrar. Por favor, insira o primeiro número. Esta é a nossa corda. Você vê o erro de obter texto ou inserir uma string em verso, por favor. E o mesmo. Caso contrário, para o segundo valor desse texto, faça a mesma coisa. Caso contrário, volte para. Se isso acontecer, definimos essa mensagem de erro. Não vamos mais longe. Isso nunca acontece e nós temos mentiras. Em vez de escrever, eu explico tudo isso para você. Acho que meu vídeo pode ser um pouco mais compacto. De qualquer forma, vamos até lá. O TNS inicia, configurado ao clicar no ouvinte. O que? Claro, se o que não for entradas vazias Eu só escrevo nele a coisa toda. Agora, se isso não é verdade, e isso não é verdade agora, dizemos verdade. Isso tem algo e isso tem algo agora, dizemos tru agora porque eles não estão vazios, queremos executar o resto E agora? Queremos um número aleatório. Claro, um número aleatório entre deixe-me fechar isso e minimizar isso novamente entre esse e esse número aleatório entre esse primeiro e o segundo número. Então, deixe-me escrever um ponto aleatório. O próximo a entrar. É um padrão e 50, por exemplo. O que isso faz? É uma função do próprio Android. Isso me dá um número aleatório de 0 a 50. Não consigo colocar nenhum número, por exemplo, cinco. Isso me dá um número aleatório de 0 a 5. Ou 70 me dá um número aleatório de 0 a 70. Eu não quero 0-70. Eu quero um número entre isso e isso. Agora, quero dizer, para começar, EDT, segundo valor ponto x porque quero o texto ponto dois caracteres porque quero uma string e, claro, não posso dar o próximo ponto aleatório da próxima string para agora, posso ter um número aleatório entre zero e o segundo número Eu acho que não está bem. Deixe-me pressionar aí e aqui. Eu digo obter um número aleatório para passar esse tema para uma função. Então, todas as nossas palavras estão no mesmo lugar. Abra e feche. Deve levar dois números. Claro, esse é meu primeiro número. Controle C e controle V e inter e shift e o botão ao lado do M s sem mudança Botão ao lado do M e outro controle V. S, não o segundo valor. Eu só copio isso. E, primeiro valor. E, claro, V A é igual aos resultados dessa função. Vamos apenas comentar isso também. Então clique aqui. Nós não temos isso. Desta vez, a lâmpada foi criada. Então, eu tenho o que devo dizer? A primeira está em curso e segunda está em curso e meu resultado. Deixe-me pedir desculpas por ter entrado. Então, estamos aqui e temos um ponto aleatório. O próximo a entrar. Acho que esse vídeo pode ficar longo. Deixe-me dividi-lo em dois vídeos. Continuamos no próximo vídeo. 56. Dia 8: escrevendo códigos de jogo primários parte2: Escrevendo os códigos primários do jogo, parte dois. Onde estávamos? Se eu quiser ter um número entre o primeiro e o segundo. Primeiro, eu deveria entender qual é menor e qual é maior. Por quê? Porque não estamos dizendo definitivamente que o primeiro é menor. Talvez tenhamos colocado maior no primeiro. Vamos fazer isso, pressione home inter go up, R, o que significa? Sua variável mínima é igual à nossa primeira. Obviamente, R max é igual a. Segundo, por padrão, acho que talvez o primeiro seja menor. O segundo é maior. Agora, deixe-me adicionar um se, se, o quê? O primeiro é maior. Em seguida, segundo. Você vê o que acabou de acontecer, abre e fecha no Inter. Dizemos que a média é igual ao segundo, porque o segundo é menor agora. E max é igual a. Primeiro, você vê como isso é fácil? Agora, vamos dizer, no máximo, que já decidimos qual é o máximo menos Descasca um. Você vê o que acabou de acontecer? Então, dizemos o que é Max, por exemplo, dizemos 50-100 O que é Max 100? O que significa 5.100 -100 -50 é igual a 50. Ok. Agora, temos 50, diga-nos um. Agora temos 51 0-51 em nosso intervalo E adicionamos média a isso i porque não queremos o intervalo 251 Queremos da nossa média. Então, se tivermos zero, adicionamos esse 520 Se colocarmos 50 dentro do primeiro, adicionamos esse 50 ao Por exemplo, de zero, se tivermos zero, temos 50, e se tivermos 50, temos 50 mais 5.100 Temos esse alcance agora e, de companhia, não devemos esquecer. Devemos devolver nosso número. Eu tenho o erro por alguns segundos e depois ele desaparece. É a barra do Android Studio. Às vezes, leva tempo até que o erro que diz que você não tem retorno desapareça. Agora desapareceu. Só queremos ver o que isso retorna para nós. Como podemos fazer isso? Deixe-me dizer, temos esse número aleatório aqui. E no final, por exemplo , aqui, eu pressiono inter. Eu digo L, o que é, você só vai ver. Olha, eu. Vamos dar um nome a ele. Por exemplo, obtenha um número aleatório. Então eu tenho esse erro. Vou verificar o poste de luz e acredito que as coisas podem me ajudar. Mas como, por exemplo, sou apenas programador de Android um mês ou talvez um ano de experiência Eu não sei muito sobre esse tipo de coisa. Exatamente por causa disso, tentei alcançar o maior número possível de erros. Assim, você pode ver quais coisas diferentes podem acontecer com você. Como qualquer outro aluno que tenho pessoalmente, vi que eles cometem muitos erros. De qualquer forma, abra isso. Ok. Classe de importação. Registre, crie uma turma, registre, crie uma mãe, um blog. Uau. O que devo fazer? Qual deles? Eu não sei o que acabou de acontecer. Ok. Deixe-me clicar em outro lugar. Eu ainda tenho esse erro. Se eu vejo aqui, eu também tenho um erro. Se eu continuar, resolva uma referência como. O que devo fazer? Eu não sei Eu apenas escrevo com um L pequeno, e eu mudo para um L grande Deixe-me ver se eu escrevo L. O que acabou de acontecer e aperto I dot, e então, por exemplo. Agora, eu ainda tenho um erro aqui. O que devo fazer? Você vê que se você colocar o mouse sobre ele, você vê a classe de importação. Eu mudo para lá. E você tem mais ações com Alt inter , mas Al shift inter basta clicar nela Ok. Deixe-me mudar para a Inter. Acontece alguma coisa? Não tenho certeza. Deixe-me clicar novamente sobre isso ou, quando estiver aberto, A shift inter. Ok. Deixe-me subir. Ele importa o Android UT Log. Então eu tenho isso agora. Ok, acabei de remover isso e vou verificar o que acabou de acontecer. Eu ainda tenho esse problema. Por quê? Porque nenhuma das funções a seguir pode ser chamada com o argumento supp. Por quê? Porque eu só dou um parâmetro. Mas eu deveria dar a ele pelo menos duas cordas. O primeiro. Você vê? Agora, eu voltei, o botão ao lado do M, separe isso e diga, temos um pouco lá em cima, preenchemos um ponto. Você vê essa estrutura, string de tag e string de mensagem. Essa é uma mensagem. Isso é tag e damos a essa mensagem o valor de A. Agora, o primeiro é o que colocamos no campo. Ok, deixe-me executar o aplicativo para ver o que acabou de acontecer. Mas o que é isso? Ok, basta clicar neste jogo e ampliar, ampliar. Um pouco para baixo. Agora, o primeiro número, por exemplo, o 50 que eu disse e o segundo número 100, e aqui, eu tenho esse gato. Da última vez, acho que preenchemos esse erro de nível de ajuste. Você se lembra? Como queremos ver um erro, removemos esse erro de nível e copiamos esse número aleatório, colamos e obtemos um número aleatório. Eu repito isso. Comecei meu aplicativo, entrei na minha página, primeiro valor, primeiro número, segundo número. Agora, eu tenho esse número de obtenção aleatória. Isso, como você pode ver, é para bloquear. Eu preencho essa tag com um número aleatório com o valor. Qual valor, o valor de A, A é o número aleatório que acabamos de retornar dessa função e colocá-lo dentro do A. Então temos esse A. Podemos colocar esse A dentro do nosso lote. Então eu converto esse A em um extremo de um para um. Então, como queremos encontrá-lo, queremos a possibilidade de encontrar esse valor, damos a ele uma tag. São nomes, exatamente o nome. Você se lembra disso? Com nome. Imagine que você dê um nome ao seu valor. Com esse nome, você não consegue encontrá-lo. Portanto, obtenha um número aleatório. Ok, eu acabei de copiar isso. Coloque-o aqui. Com esse nome. Eu digo, apenas me mostre as coisas. Pacote meu. O que é o Package Mine? Meu pacote, não o emulador completo. Apenas me mostre as coisas dentro do meu pacote. Qual é o meu pacote? Meu próprio aplicativo. Nem as outras coisas dentro desse andróide. Ok. Agora, entendemos tudo isso. E, claro, no lado esquerdo, gato de madeira. Qual gato LG? Não, cadê o gato? Temos algumas outras coisas aqui dentro. Por exemplo, você vê esse botão, Kar cat, Klich ou chute para a direita, Kleer Kar Ok. Agora, eu tenho esse botão de partida. Quando eu pressiono PTN start, defina o botão de clique. Executa, e então se não forem entradas vazias, nenhuma delas está vazia, então esse valor A. Preenchido com um número aleatório, então eu coloco blog, obtenho um número aleatório e uma string de dois pontos Eu acredito que se eu apertar um botão de partida, há um número aqui 50-100. Vamos fazer isso. Começar. Eu tenho 82. C do lado 7624 aprenda que minha calculadora. Por quê? Porque esse pacote é meu. O que é esse número aleatório de obtenção? É o nome. Eu dou esse valor. Quando você diz que é uma tag , mais tarde, você pode encontrar esse valor com essa tag. E, claro, aqui um mês, até mesmo nosso segundo minuto, segundos e um valor menor que o segundo, você tem e sua trilha, a hora exata que você tem e seu nome desse log e, claro, seu pacote, onde está seu aplicativo ou outro aplicativo e o valor Eu tenho esse valor de 82. Ok, vamos pressionar novamente para ver o que acabou de acontecer. Deve me dar outro número aleatório 50-100, ok? Comece, 70 comece 73, novamente, 69, novamente, 96, novamente, 82. Você vê o que acabou de acontecer? Eu crio números aleatórios de 50 a 100. Então, deixe-me fazer outra coisa. Eu digo, por exemplo, aqui está 100, mas aqui está 50 para ver se , você se lembra, se isso funciona, e ele detecta que nosso primeiro número é grande e o segundo número é pequeno Eu só quero ver dois Há muitos números aqui. O que devo fazer? Você vê esse botão, gato Kleer. Tudo bem, Lick, e onde está o gato Kleer? Assim como aquela Kiara para esse botão. De qualquer forma, é como você pode ver no botão L cat. Comece 76, comece 78, comece 83. Agora, o que acabou de acontecer? São só cinco. Como você pode ver, todos os números estão entre o intervalo que queremos. Ok. Deixe-me esclarecer isso de novo e dizer, deixe-me ser um pouco mais apertado, porque eu quero ver, eu só quero ver se isso mais um é realmente necessário, eu não sou bom em Matt porque não sou Mas eu quero ver se é bom 99 e 100. Se esquecermos de colocar isso mais um, não obteremos o número certo Mas agora devo ver se obtenho meu número entre esses dois intervalos entre 99 é 99 também e 100-99 Então, 100 ou 99. Então, vamos começar. 100. Ok. Comece 99. Então eu tenho 99-100 e os números dos barcos também estão incluídos. Você entende o que acabou de acontecer? Deixe-me tentar começar, começar, começar, 199, 100, 100, 100, um, 100, 199, desse jeito Eu tenho entre esses dois números. Então, meu código funciona muito bem, e eu tenho que escrevê-los para nos dizer um. E meu alcance é dois, como você pode ver. Veja, 100 -99 é igual a um, mas eu não quero 0-1 Eu quero 0-2. Pode ser um ou zero, mas não os dois. Deixe-me fazer o tapete para você. Comentário 100 -99 é igual a um, e esse é um e esse Outro é igual a dois. Então você me dá um número 0-2 que pode ser zero ou um, mas não os dois E como tenho zero ou um, acrescento maldade a eles. Deixe-me apenas um dobro disso novamente. Então, se for zero mais 99 é igual a 99, e se for um mais 99, é igual E que tal dois, eu digo 0-2, mas não os dois Espero que você entenda. Se você ao menos colocar o mouse na próxima entrada, verá a próxima entrada aleatória não negativa do gerador de números aleatórios, menor que o limite específico do utilitário Colocamos util dentro de como em, e geramos um valor inaleatório distribuído uniformemente entre zero e um util específico limitado ao número máximo, por exemplo, o número que acabamos de colocar não está Claro, diz que esse número deve ser positivo. E você pode ver. A próxima linha diz que dá erro se você colocar zero. E, claro, colocamos um para não ter erro y porque se a média e o máximo forem iguais, por exemplo, 100, 100, 100 menos, 100 é zero Então, damos zero. Talvez tenhamos um erro. Então, nós mais um. Por quê? Porque não cometemos erros, mesmo que sejam iguais. De qualquer forma, deixe-me tentar mais algumas vezes, ou eu simplesmente removo ou coloco aqui. Não, seu código está confuso. Eu o removo. Outro, outro, outro. Deixe-me aumentar meu alcance. Por exemplo, 500100 e comece. 443 é 500-100. Outros 381.297. Espero que você entenda essa parte muito bem. E espero que você entenda, devemos verificar nosso código assim, 99 e 100 e colocar isso para ver se meu código realmente funciona bem. Talvez se eu colocasse isso e não escrevesse o código correto, vejo que não tenho 100 dentro dele. Por exemplo, eu não tenho meu segundo número dentro dele. Eu verifico meu código com o slug, como você pode ver. Então, está correto. E, claro, não se esqueça de selecionar seu emulador. Se você ligar o telefone e o estúdio, deverá selecionar o telefone. Assim, você pode ver o registro desse dispositivo. Acho que mencionei que é só para mim, para o programador. Para nossa visão, é algo dessa ferramenta que você vê dentro dessa atividade. É algo assim. O log é para mim, não para os usuários. Acho que é o suficiente para este vídeo, continuamos no próximo vídeo e só para parar e minimizar. Espero que você entenda tudo isso muito bem. 57. Dia 8: tipos de dados numéricos: Tipos de dados numéricos. OK. Este é o nosso aplicativo. Vamos continuar. Última visão D: complete isso. Eu quero apenas apontar algumas coisas primeiro. Deixe-me mostrar esta atividade do jogo. Você vê essa visibilidade nosso layout de entrada de texto, pistola de visibilidade do Android. Também temos essa visibilidade para outros objetos. Por exemplo, fazemos isso com nosso botão. Também damos essa visibilidade à nossa visualização do cartão de material, e eu só quero mencionar que outros objetos como essa visualização de texto também têm essa propriedade de visibilidade. Mesmo essa visão, se eu apenas colar minha visibilidade aqui, essa visão também será alta. Você se lembra dessa visualização para criar uma linha em nosso aplicativo? Antes de executar o aplicativo novamente, deixe-me mostrar que você pode ter esse erro. O que diz isso? Diz? Essa linha pode nunca executá-la? Você escreve isso se e fecha este fim deste se e esta parte pode nunca acontecer. E isso me dá erro. Então eu só estou pensando, eu deveria escrever outra coisa e, se não, fazer outra coisa. Mas por que essa coisa me dá erro? Isso não deveria impedir minha atuação. O erro é o que impede sua ação. É um grande problema. Mas isso não é um grande problema. Ok, não funciona para quê? Eu não me importo. Se não, eu não quero te dar nenhum erro porque esses não são valores vazios, eu te dou o erro. Por causa disso, eu não tenho rs, mas como você pode ver, isso me dá erro e o erro não faz sentido para mim. Deixe-me executar o aplicativo para ver se ele está funcionando ou não. Porque quando temos um erro, o aplicativo não deve ser executado. Ele para de funcionar porque você tem um problema. Mas, como você pode ver, ao mesmo tempo, tenho meu erro e meu aplicativo pressiona o jogo. Meu aplicativo é executado. Então, o que acabou de acontecer? Deixe-me escrever 99 e 100 e onde está meu gato LG? Limpe este gato de perna e amplie o Zoom. Outro Zoom. Ok, estou aqui. 99, 100. Mostre-me. 100, 100, 100, 1019999, 99, Então, eu tenho um número aleatório 999-100, e também esses dois números incluídos e meu número aleatório é inteiro Então eu não posso ter 99,5, por exemplo. Nós entendemos isso, mas e esse erro? Por que eu tenho o erro? Eu falo muito para te dizer isso de vez em quando. Deixe-me pensar que, por exemplo, uma ou duas vezes por mês, eu tenho esse tipo de erro quando escrevo um programa? Esse tipo de erro Às vezes, o bug. Sim, sim, deixe-me dizer assim. Às vezes, esses erros são bugs. O dinheiro do estúdio Android. Porque, por exemplo, esse erro deve estar no aviso. Mesmo que não seja um aviso importante. Deve ser um aviso fraco. Veja, eu tenho um aviso fraco. Deve estar até mesmo em um aviso fraco, mas não em caso de erro. Então deixe-me, já que estamos aqui, verificar mais uma coisa. E se eu disser, me dê 100-100. No meu código, apenas o primeiro e o segundo. Pegue min e max e o if, não é verdade, e vamos para o aleatório. Então, eu deveria me dar um número aleatório 100-100 e ele deveria incluir o 100 e deveria ser apenas o 100 porque é 100-100 e é inteiro Então, eu não tenho nenhum entre números. Eu só tenho 100 porque os dois números estão incluídos. Então, deixe-me verificar exatamente isso. Deixe-me te mostrar. Isso mais um depois de eu fazer o trabalho. Caso contrário, o 100 não está incluído de qualquer maneira. Pressione iniciar 100 ou simplesmente limpar, está claro 100, 100, 100. Eu pressiono muitas, muitas, muitas vezes. Eu só tenho meus 100 porque são 100-100. E eu só tenho um número entre eles. De qualquer forma. mais uma coisa, já que estamos aqui, não a memorize. Pense nisso. O que simplesmente acontece? 100 -100 é igual a zero mais um Deixe-me calcular isso para você. 100 -100 no máximo menos a média é igual a zero, menos um é igual a um. Agora, eu dou esse número máximo aleatório de um. Me dê um número 0-1, mas não tenha aquele Então, isso me dá zero, e eu perco é zero com o número significando 100, igual Eu não tenho nenhum outro número além desse zero e eu o acrescento com 100. Pense nos códigos. Não apenas memorize-os. Você pode usar esse código em qualquer lugar e sempre que estiver correto, mas você deve saber o que está fazendo? Não basta escrever os códigos. Exatamente por isso, tento dar tantos detalhes. De qualquer forma, como você pode ver, meu erro desapareceu. Por quê? Porque só um segundo, eu escrevo algo para que esse ID seja atualizado e o erro desapareça, sem mais Deixe-me removê-lo. Então, se eu escrever alguma coisa, esses erros, eu só mostro que eles sumiram. E por causa disso, exatamente por causa disso, eu te disse que às vezes esse tipo de erro acontece e só Andrew the Studio É claro que, de tempos em tempos, Andrew the Studio oferece atualizações mais próximas e esse tipo de coisa fica cada vez mais baixo, mas você deve entender que essas coisas acontecem às vezes Então, vamos começar, paramos o aplicativo, minimizamos minimizamos e continuamos. Então, a primeira coisa que quero fazer é comentar isso porque verifico meu código e está tudo bem. Então eu comento isso. Como está na fonte, você pode remover essa parte do comentário. Ou, como eu sugiro, você mesmo escreve. Deixe-me ver este jogo de atividades. Eu tenho isso, esqueci de te mostrar. Essa visão está oculta. Nossa linha está escondida. Essa visualização está oculta porque a visibilidade de gravação desapareceu. Todos os outros objetos que você pode ver também têm essa visibilidade, só quero mencionar isso. Pare novamente, minimize, e eu removo essa linha porque não queremos que ela fique invisível. O que eu quero fazer. Esse único layout de entrada adivinha, não seu convidado, acho que o layout de entrada acabou de dizer que a visibilidade desapareceu. Queremos mostrar isso para mostrar qual visibilidade de entrada? Sim. Eu apenas faço uma dupla hélice no Control C e toco em tab, tab e tab, e controlo. Acho melhor escrevê-lo aqui Mas de qualquer forma, eu tenho isso. Como podemos esconder isso? Dizemos visibilidade. Você vê a visibilidade diminuir. Deixe-me voltar e dizer, eu quero essa suposição do layout de entrada. Uma propriedade desta, qual propriedade, eu quero a visibilidade. Você tem toda a propriedade. Todas as propriedades estão lá, mas eu quero visibilidade porque muitas delas, escrevo duas, a encontram mais rápido. Então, visibilidade. Eu escrevo é igual a V. Claro, com ponto V. Eu tenho visibilidade. Eu fui embora. Então eu escrevo desaparecido, e ele faz exatamente o que eu fiz aqui. A visibilidade desapareceu. Isso faz com que a visibilidade da propriedade seja igual a perdida. Então, com esse comando, eu faço a propriedade de visibilidade. Desaparecido. E se eu escrever apenas desaparecido, posso dar à visibilidade o valor de desaparecido? Não, eu não posso. Que tal visibilidade com um pequeno Desculpe, veja com um pequeno V. Ver ponto. É outra coisa. Não, eu não posso. Então, porco V, veja o ponto perdido para diminuir a visibilidade. Mas eu quero torná-lo visível. Então, qual deles você vê isso visível ou deixe-me escrever visível. Eu também tenho invisível. Temos três opções diferentes para essa visibilidade, e eu também tenho a invisível. De qualquer forma. Deixe-me ver isso. Deixe-me executar o aplicativo para ver o que acontece porque queremos saber. Você não precisa executar o aplicativo tantas vezes quanto eu. De qualquer forma, cinco e 55. Se eu pressionar iniciar, a suposição do layout de entrada deverá estar visível. Começar. Oh, seu palpite , está visível agora. Assim mesmo. Nós o tornamos visível. Eu quero fazer outra coisa. Isso foi 110 PTN para. Eu quero torná-lo visível também. Nós acabamos com essa visibilidade, eu quero torná-la visível. Eu quero copiar. Eu quero uma cópia dessa linha. E eu não quero copiá-lo para outros Ps. Claro. Então, o que devo fazer? Controle. Deixe-me remover isso. Desculpe, acabei de pressionar Control P D. Eu escrevo assim, para que você possa lê-lo facilmente. Então eu escrevo controle. Eu pressiono o controle D e minha linha é duplicada. Deixe-me fazer isso de novo. Controle D no meu teclado. Controle D. Apenas a linha ao lado. Eu tenho uma cópia dele. É como se eu pré-selecionasse o controle C, viesse aqui e pressionasse lá e depois controlasse. Ah, desculpe. Eu até faço isso errado. Controle C, depois entre e depois controle V. São muitos conjuntos Veja, selecione o controle C, vá até o final, pressione Control V. Então, o que devo fazer em vez disso, eu simplesmente vou na linha que eu quero. Pressione control e depois D. Eu dupliquei. Então você entende a triagem. Deixe-me remover essa linha e não vou usar o jogo de atividades para copiar o nome de To. Eu só quero escrever isso aqui, BT go. Já que eu digo que devemos escrever, eu apenas escrevo aqui. Mas desculpe, eu não quero nem mesmo copiar esses controles. E eu te contei uma novidade de qualquer maneira. Agora queremos que o usuário adivinhe o número, e então armazenamos esse número, esse gás dentro de uma variável e depois verificamos. Portanto, devemos definir uma variável. Em vez de estar aqui, pois quero que essa variável seja usada em outros lugares, quero declarar essa variável gb Então eu simplesmente o removo daqui. Deixe-me subir logo após essa ligação, também é uma variável global. Deixe-me dizer que variável não é um número aleatório. É um bom nome para minha variável. Qual é esse tipo de número? Falaremos sobre tipos posteriormente neste vídeo. Mas, por enquanto, deixe-me desistir. É uma mentira. Isso é bom? Eu volto. Não, por favor, dê um número. Adicione a inicialização lá. Eu deveria dar um número. Eu vim e disse: Ok, faça isso. O estúdio Android fornece minha variável, o número zero. Está tudo bem agora. Eu também posso atribuir nulo e fornecer o número mais tarde. Mas eu só digo, dê zero. Mas como o zero pode ser uma das suposições, talvez eu deva ir para menos Por exemplo, menos um fora do meu alcance de adivinhação. Eu acho que é melhor. Deixe-me ir para a atividade principal. Eu abro essa atividade principal. Você se lembra que seguimos até aqui? Para decimais, seguimos e dobramos. Veja, nós conversamos sobre isso. Florido e duplo. E dizemos que depois do dígito após o ponto após o ponto, o número decimal em pousio é cerca de sete números em nosso teste e para o dobro é cerca nosso teste e para o dobro é de 16 números Então, falamos sobre eles e também introduzimos int. Nós dizemos, você vê. Se você tem menos de 1 bilhão, pode atribuir int. Se você está ganhando mais de 1 bilhão, por favor, não desista. E também fale sobre uma string B e fot. Ok, eu falo sobre fazer e fazer agora. Deixe-me fechar isso e continuar. Então, como eu disse, temos muitos outros tipos de números inteiros. Usamos muitas vezes em porque abrange muitas coisas, mas temos outros tipos. Deixe-me te mostrar. Onde devo escrever? Eu acho que aqui é bom. Um igual é o tipo de byte então. B O que acontece se eu não escrever isso? Por exemplo, só quero escrever um texto curto. Eu não posso. Eu deveria adicionar shift e o botão ao lado de L. Se não, se não, isso me dá erro. Eu deveria escrevê-lo. E se eu escrever um S pequeno? O que acontece? Eu tenho um erro, então apenas S maiúsculo é sensível a maiúsculas e minúsculas. O que vem a seguir? C? O que é isso? Claro, com grandes. Qual é o quarto. Longo. Desculpe, longo. Acho que mencionei no vídeo anterior que vamos falar sobre isso por muito tempo. De qualquer forma, qual é a diferença? Por exemplo, se eu quiser dar nem mesmo 1 bilhão e 100.100 milhões Isso me dá erro. Por quê? Porque o BI não pode ter um número tão grande. Esse tipo de número é grande demais para ser ignorado. Deixe-me remover 200. Sobre o quê? Nem mesmo um. Eu costumo usá-lo. Então meu número não passa de 100. Eu só escrevo. O byte é de -128 a 127 quando o valor I é menor que 100, eu uso Não gosto de usar a capacidade exata da variável. Que tal um resumo? Short é de -32.000 7682 Pella, 30.767 Então, deixe-me dar uma olhada. Se eu lhe der um. Está tudo bem? Está tudo bem. Dez. Está tudo bem? Está tudo bem. Cento e 10.000 s. Não vamos além de 2000. São apenas 10.000. E se eu disser 100.000, tenho uma briga? Porque eu não posso dar mais do que 32.767 nisso. Então, deve ser menor. Veja, eu digo o número exato, está tudo bem. Mas mais uma vez, não está bem. Você não pode dar nem um número a mais do que isso. Então, quando meu alcance é menor que 10.000, eu uso short. Mas muitas, muitas vezes eu uso int porque ele tem uma grande variedade e, para muitas coisas diferentes, eu o uso. Minha incapacidade é exatamente assim. Claro, são necessários 2 bilhões, mas eu não quero dar 2 bilhões. Eu dou menos de 1 bilhão. Tem a capacidade, mas eu não quero preencher a capacidade. Você vê a mordida. Dizia que não há problema em dizer mordida porque você quer usar mordida. Você vê o resumo. Dizia que não há problema em resumir. Mas desculpe, eu deveria diminuir isso. Não há problema em resumir. Mas você vê que é diferente. Diz que você pode remover int e apenas fornecer o número. Deixe-me mostrar. Você pode remover esse int. Se eu clicar nele, ele removerá a declaração int. Porque, por padrão, como eu disse, o int é o tipo de variável mais comum, e o cutlin cede sozinho quando você coloca um número dentro da variável Porque já que estamos ensinando, eu coloco. Portanto, entendemos que int é o padrão. Que tal muito tempo? Basta escrever aqui, que eu possa copiá-los e entregá-los aqui, colocá-los aqui e colar por muito tempo. Você consegue ver a diferença? Ok, mil milhões de bilhões. Oh, meu Deus. Milhares de bilhões de bilhões, milhões de bilhões. E 9 bilhões de bilhões? Eu acho que você não pode contar o número. É um número muito grande. Então, quando eu uso mais do que meu número , vou para mais de 1 bilhão. Claro, você também tem o número máximo aqui, mas é muito grande e pode calcular e aceitar uma grande variedade de números. Resumindo, por que existem esses tipos diferentes? Porque cada um deles tem uma capacidade diferente. Por exemplo, deixe-me explicar um exemplo, por exemplo. Se eu tiver um tanque com capacidade de 1.000 litros. É bom usá-lo para uma ferida com apenas um copo de água? Pode, mas não é razoável. Por exemplo, se eu usar long para avaliar a idade do usuário, isso pode ser feito, mas não é razoável É mais comum usar. Às vezes, se você armazena muitos dados, muitas vezes, muitos dados repetíveis, é melhor usar dados que consumam menos, como esses ou esses, se possível Mas se usarmos apenas um, dois ou até dez números, geralmente usamos in. Se você não pode colocar seu número dentro, por exemplo, da população, você não pode colocá-lo dentro deste ou de muitos outros ts. Você diz: Ok, agora é hora de usar um número maior. Por exemplo, longo. Eu tenho mais um tipo, se você não puder colocá-lo dentro de Long. Deixe-me te mostrar que R, eu dou um nome a isso. E, qual é o número inteiro do tipo B. Damos um número inteiro grande a esse E. É muito grande. Ok, deixe-me dar esse grande número inteiro, um, dois, três, eu não posso y Porque é diferente dos outros. Eu deveria dizer dessa maneira. Número inteiro grande. Desculpe, remova esse valor de ponto de um, dois, três, por exemplo, quatro. Deixe-me continuar com isso no próximo vídeo porque eu quero criar uma função e não colocá-la assim. 58. Dia 8: grande número inteiro: Número inteiro máximo. Este é o nosso aplicativo. Vamos continuar. Onde nós. Queremos colocar isso dentro uma função ou apenas escrever um quatro. Deixe-me escrever um quatro. Eu só pressiono inter. Eu escrevo quatro livros abertos e ilos. Em 050, por exemplo, e ele adiciona os para me avisar , começa do zero e vai para 50 Então eu tenho meu i de zero, depois um, dois, três, quatro, cinco, até 50. Deixe-me continuar vendo o que acabou de acontecer. Vamos fazer 49, rodar 50 vezes e dar 50 também. Execute nosso código algumas vezes. Quantas vezes mais vezes decidimos. Por exemplo, eu decido, eu faço isso 50 vezes 0-1, dois, três, quatro até 49 E se eu quiser ver em qual deles, posso usar esse I dentro dos quatro. E cada vez que isso eu tenho o valor de zero, na próxima vez um, na próxima vez, dois, na próxima vez três. De qualquer forma, vamos continuar. Eu digo que a variável E, E é igual Então, eu quero colocar algo dentro da minha variável e. Novamente, e. Então, até aqui, eu coloco E dentro da minha multiplicação de pontos E. , e eu posso colocar B inteiro Dentro disso, escrevo um número inteiro e, novamente, desculpe, removo esse valor de ponto de ou não, apenas 50, está tudo bem 50 Então eu tenho 50. Eu multiplico esses 50 por 50 e guardo novamente em E. E depois que meus quatro terminarem, deixe-me dizer como se eu abrisse Eu deveria dizer um nome de etiqueta. Deixe-me dizer E, eu não posso dar isso como eu o E. Y? Seja como for, deve ser uma corda. Deixe-me mostrar isso Eu deveria pegar um valor de string de você. Veja uma string e uma string. Tag é uma string. Além disso, a mensagem é uma string. Então, eu deveria dar aqui uma string com a tag e a mensagem, é claro, deveria ser uma string. Então você tem que dizer dot twist string. Caso contrário, você tem um erro. Eu coloquei meu E, meu grande número inteiro dentro desse log e, claro, um grande número inteiro Eu dou a tag, um número inteiro grande N. Deixe-me executar essa coisa Nem eu preciso da função agora. Deixe-me correr. O gato, eu limpo isso, vamos ganhar. Obtenha um número aleatório. Sim, colocamos isso para ver apenas um número aleatório. Mas não queremos isso. Queremos uma tag inteira grande. Controle C, clique aqui. Controle. Por quê? Porque eu quero um número inteiro grande Se você não fizer isso, por exemplo, um inteiro grande. Você escreve outra coisa. O que acabou de acontecer? Você pode ver seu resultado. Imagine que você usa isso muitas vezes e, se escrever alguma delas de forma errada, não pode tê-la. Ou mesmo se você, por exemplo, escrever aqui, número inteiro grande um e em outro lugar, inteiro grande dois, se você apenas escrever, por exemplo, número inteiro grande 11, você não conseguirá ver nenhum Então você deve ter cuidado. A mesma coisa, você quer vê-los na mesma categoria. Você deve ter cuidado, dê a eles o mesmo gato, para que possam vê-los um com o outro. Espero dizer isso claramente. Então, o que temos aqui, um número inteiro grande. Deixe-me ver o número. Ok. Eu não falo inglês muito bem. E se você é, acredito que nem você consegue ler esse número. Deixe-me contar quantos números eu tenho? Deixe-me dizer, se esse valor for cerca de dez números dez dígitos Desculpe, dez dígitos. Acho que tem mais de 100 dígitos. E, honestamente, não posso dizer nenhum nome para esse número. Assim, você pode ver o quão grande é um número inteiro grande. Primeiro, quero mostrar algo no meu registro e depois volto para ver o que temos no código. Ok, pare, pare, minimize, minimize e, como você pode se lembrar, controle D. Eu tenho, por exemplo, esses dois, e posso dizer saltos corda hes, corda, e aqui dentro, um espaço é igual a um espaço aqui, um número dois, e espaço, claro , e o espaço Deixe-me executar isso de novo. Eu simplesmente limpo assim. Deixe-me ir para esta página. Eu tenho um número inteiro grande por um inteiro porque dou esse nome ao t, número inteiro grande, para que eu possa encontrar esses dois com Veja, a hora é a mesma, porque limpamos a mais antiga. É quase importante, não posso dizer regra. É um truque. Veja, eu tenho esses dados, mas eu tenho mais descrição porque eu tenho uma string, eu posso adicionar outra string a ela, então eu posso colocar o número um é igual D, e o número dois é igual a isso ou até mesmo no início. Então, quando eu digo inteiro de porco e tenho cinco ou dez números inteiros de porco diferentes ou qualquer outra coisa Eu registro todos eles, mas não consigo entender. Por exemplo, esse número é de lá. Não me lembro desse número, qual é esse número? Eu adiciono algo no final ou no início. Então eu posso entender, esse é o número dois, é esse. Esse é o número um. É esse. Acho que depois de um ou dois anos de experiência, você adiciona algumas dessas dicas e tentativas ao seu código. Na verdade, não é o que ensinam em qualquer lugar. É só experiência. Vamos parar o anúncio. Pelo que entendemos, podemos dizer os textos e os pelos, o que está aqui, por exemplo, linha de jogos acti even para isso Até mesmo isso. Ok, estou nesse código e na linha, um pouco nessa linha, nessa atividade, e aí, eu tenho esses dados e é isso. E então, quando eu verifico meu aplicativo, todo o porco é inteiro Por que eu digo Pig integer? Por exemplo, teste de dados três testes de dados do banco de dados, em qualquer outro lugar. É só o nome. E quando eu dou uma olhada, eu posso entender facilmente. Ok. Então, eu tenho esses dados com esses problemas. Ok. Como posso encontrar esses dados? Porque, por exemplo, eu adiciono o registro de 200 reproduções e estou procurando esse erro há muitas horas. Então, eu posso entender. Ok, esses dados de execução estão online 40 nesta atividade, e esses são os dados redondos. Espero explicar de forma simples e que você entenda o que acabou de acontecer. Ok. Vamos falar sobre esses códigos. Eu digo que V E é um número inteiro grande, então minha variável chamada E é o número inteiro grande e eu quero dar esse valor E. Deixe-me entrar e dizer: Ok, dê cinco. É isso, você não pode dar cinco. Não é abreviado ou mentiroso. Você deve escrever um grande valor inteiro de algo, para poder fornecer os dados Mas o número, o número. Então, se eu entrar nesse erro e abri-lo, altere o tipo de e para t. Você quer dar cinco? Dê para int. Y grande número inteiro. E se eu disser, k, grande valor inteiro de Por exemplo, até mesmo esses cinco. Está tudo bem Você pode dar. Então o que aconteceu? Nós adicionamos um quatro. O que um quatro faz? Quatro, repita seu código por tempos definidos. Então, o que acabou de acontecer? Eu digo, eu preciso de um quatro e chamo minha variável para isso f. Eu não posso dizer nada. Você vê? Deixe-me dizer ABC, por exemplo, e eu digo A maiúsculo num ABC caps e nunca use Por quê? Porque eu não preciso usar esse valor dentro de quatro. Eu só tenho isso e cada vez isso aumenta. Por exemplo, na primeira vez, se você verificar o que é, é zero. Da próxima vez, é um, próxima vez, são dois. Deixe-me te mostrar isso também. Eu comento essas linhas. Copie isso no controle V e no número inteiro grande. E eu não quero Myb C como string. Deixe-me ver o que eu tenho? Execute o a novamente. Eu tenho algum gato? Sim, eu tenho. Limpe isso. Eu esclareço e digo, eu quero. Eu não tenho nenhum. Deixe-me ir lá. E até 49. A partir daqui, vamos subir e é igual ao número dois. Você vê igual ao número dois. Essa. Eu só quero esse. Porque o Autopil Manager também tem, por engano, o autopil Você também pode ver isso. Eu deveria colocar um nome mais longo, mas está tudo bem. Deixe-me ver quais são os dados que têm igual a dois. Na primeira vez que minhas quatro corridas, tenho zero dentro desse ABC entorpecido próxima vez é um, dois, três, quatro, 56, e até aqui 49, é menor ou igual a Funciona até ser igual a 49 e depois está pronto. Se você contar zero, 249. Como também temos o zero, temos 50 vezes de corrida. Espero que você entenda essa parte também e pare com isso de qualquer maneira. Então, eu também recomendo isso e altero de volta para Não, não preciso alterá-lo novamente De qualquer forma. Vamos continuar. Eu tenho zero, um, dois, até 49. Então, nós também entendemos essa parte. E, como já dissemos, quero dar a esse grande número inteiro os dados, mas não posso colocá-lo com sinal de igual Então, eu deveria dizer um grande valor em pontos inteiros desse número. Então eu tenho 50 dentro do meu E. Na primeira tentativa, quero dizer o zero ty. Eu tenho isso como este comentário. 50 Essa parte e é igual a 50, multiplicação de pontos, assim como esta estrela Então, temos esse 50, multiplicamos por um número Assim como podemos ver o valor do ponto, nós o multiplicamos. Assim como você colocou aquela estrela. Para um número, para qual número? Nós dizemos. Nós simplesmente não podemos dizer, deixe-me controlar x e, em vez disso, dizer 50. Nós simplesmente não podemos dizer isso. O inteiro você não pode colocá-lo dentro do inteiro grande. Então você deve dizer que está errado. Você não pode colocar o número assim. Você deve dizer um grande valor de ponto inteiro de, para que você o entenda como um grande número inteiro 50. Então, na primeira vez, tenho 50 multiplicado por 50 iguais, não sou bom em matemática, mas acho que 25 Você pode colocá-lo na calculadora. Acho que coloquei o número certo. É a primeira corrida. É o passo zero. E a primeira etapa? No primeiro passo, eu digo, você vê esses 2.500, eu coloco 2.500, eu apenas calculo e coloco dentro de E. Eu tenho na segunda vez, eu tenho esse E com o número de Então eu multipliquei novamente com esse 5050 igual a dois, coloquei na calculadora e C. Eu tenho 125.000, e fazemos isso Exatamente por causa disso, vimos esse número muito, muito grande e vemos a capacidade de um número inteiro grande número inteiro grande é diferente com esses tipos mais simples, e você o usa muito, muito raramente Mas se você precisar de um número grande, você deve entender que há um número muito grande dentro dessa linguagem e você pode usá-los. Na hora certa, você precisa deles. Mesmo essa linha, nós a usamos quando precisamos dela. Além disso, antes que eu esqueça, temos maneiras diferentes de usar para. Essa é apenas uma maneira de colocar dois pontos. Porque nesta lição, não queremos falar muito sobre isso. Só que você deve saber que existe um quatro e eu paro falar sobre maneiras diferentes e falo mais sobre quatro. No futuro, conheceremos muitas coisas. Nós o usamos de muitas maneiras diferentes. Apenas seja paciente. Só para ter certeza, essa multiplicação é apenas para esse grande número inteiro Por exemplo, se eu pressionar inter e disser D, isso é um ponto longo Eu só vou copiar isso para ter certeza, todas as palavras são exatamente iguais. Eu não tenho isso. Você vê? Eu não tenho isso. Por quê? Porque long não tem isso. Que tal entrar? Eu tenho menos. Como eu tenho d. Mas que tal multiplicar? Eu não tenho isso. Isso é apenas quatro números inteiros grandes. Esse tipo. Long in não tem isso. Não precisa desse y porque eu simplesmente não consigo dizer que d é igual a d multiplicar d. E ele diz mudar para y. igual a d multiplicar d. E ele diz mudar para y. Por quê? Porque você diz y. Ok, erro D. Sem erro. Por quê? Porque você não precisa de um multiplicador Você não pode simplesmente usar essa estrela. Esse grande número inteiro, como eu disse, é para trabalhos específicos, números muito grandes e dados pesados E por causa disso, não é com multiplicador regular É esse comando especial para multiplicar o número. E até mesmo a entrada com a qual você deseja multiplicar deve ser um número inteiro grande Acabei de comentar isso com slash star e onde terminamos star slash daqui até aqui comentamos tudo Eu deixo isso aqui. Se precisar, você pode descomentá-lo. Você só precisa remover essa parte e, claro, o final. Acabei de comentar novamente. Acho que falamos sobre esse tipo de comentário, comentário de várias linhas, não apenas comentamos uma linha Se não, acabamos de ver isso novamente aqui e nos familiarizamos com isso. Eu continuo no próximo vídeo. 59. Dia 9: verificando a estimativa do usuário Part1: Verificando a primeira parte da suposição do usuário. Temos esse jogo e, nesta parte, queremos verificar as suposições do usuário e, claro, mostrar o resultado Mas também abordamos algumas outras coisas. Por exemplo, exceções de ponteiro nulo ou algo parecido. Vamos continuar. Ok, vamos voltar. Antes de começar, deixe-me falar um pouco mais sobre quatro. Nós apenas escrevemos aqui R quatro, e neste quatro, devemos dizer que temos uma variável. Por exemplo, eu, e dizemos que você pode dizer qualquer outro nome. Essa variável deve estar em uma coleção ou em outras matrizes de palavras Como ainda não falamos sobre matrizes, acho que devemos falar sobre elas e ter mais exemplos disso no futuro Mas, como você se lembra, dizemos ou em uma faixa de números. Ainda não usamos em matrizes, mas em vez de matrizes, dizemos, por exemplo, f entre zero e não diremos até outro número, dizemos ponto, ponto até dez Temos quatro 0-10. Se eu disser “tipo”, eu apenas copio isso. Eu não escrevo isso de novo. Veja, depois das quatro, temos a abertura e quando terminamos, temos o fechamento. Mas aqui, como é apenas uma linha, não precisamos escrever isso. De qualquer forma, não temos E porque isso é um comentário. Eu só digo eu. Por quê? Porque eu quero ver qual é o meu i. E eu digo que valorizo, e não o altero no número dois. Por que não? É algo sem motivo que eu acabei de escrever. Deixe-me executar o aplicativo para ver o que está acontecendo. Disse em um sal com sucesso em 2 segundos, mas estou esperando por cerca de 20 segundos. Para o primeiro sorteio, quando você abre seu estúdio Android, demorou um pouco mais. Por exemplo, 20 segundos, leva 20 segundos para ser executado. Eu só quero dizer L cat, e quero esclarecer isso e meu valor visual. Então eu copio esse controle C e excluo esse controle V, meu valor e, e de oom out, e nós queremos o jogo Novamente, desse jeito, eu só quero dar uma olhada e clicar no jogo. Meu valor visual, você vê meu valor visual. Eu tenho esse valor visual. O que é isso? É começar do zero e do zero em si. Este, e vai até dez e o próprio número dez, zero a dez, zero a dez. Se eu contar nove, dez, 11, corremos 11 vezes porque de um a dez, e temos esse zero em si 11 vezes. Posso escrevê-lo uma maneira diferente em vez desses dois pontos. Eu posso escrever até. Você vê aquele ponto, eu tenho, F zero, dois, dez, zero em si, dez em si, e eu apenas seleciono esses dois pontos e digo não Existe alguma diferença? Você pode ver alguma diferença aqui? Olha isso, isso. Acho que não tem uma parte igual. O que diz isso? Se eu parar o aplicativo e executá-lo novamente, e eu só vejo o gato. Claro, limpe esse gato com este botão ou clique com o botão direito do mouse. Eu quero ir ao jogo. Dizia de zero, um, dois, três, quatro e até a linha. Por quê? Porque eu não tenho a mesma parte aqui. Se eu escrever até em vez desses dois pontos, eu não tenho dez em si aqui Espero que você entenda isso também, deixe-me escrever outra coisa. Pare o. Claro, e minimize esse R, o quê? Max I, por exemplo, Mx é igual a dez. Então eu escrevo aqui, Max. Está tudo bem? Deixe-me executar o aplicativo e marcar Executar. Claro, tipo. Deixe-me desta vez olhar este pote, Kleer, e clicar no Então eu tenho 0-9. Se eu mudar, deixe-me mudar para oito e, claro, claro. Se eu voltar e apertar o jogo, tenho até as nove. Por quê? Como eu mudo o aplicativo, meu APK já está instalado no emulador Não esqueça. E preste atenção. Meu aplicativo já está em execução. Eu mudo esse número. E eu não vi isso. Então eu subo aqui para ver que desenhei. Eu apertei esse botão também. Estou esperando e ele roda novamente muito rápido. Menos de um segundo. E, claro, clique em Logcat novamente. Limpe esse logcat e clique novamente. E agora eu tenho 0-7, não o oito, porque eu sou até Espero que você entenda essa parte também, e eu quero o próprio oito Deixe-me alterá-lo, ponto, ponto. Eu deveria ter os oito. Deixe-me esclarecer isso e, de volta, clique no jogo. Onde está o oito? Eu não tenho isso. I. Deixe-me repetir isso novamente. Você deve executar seu aplicativo. Este é o seu aplicativo antigo. Você altera seu código e isso não tem efeito na instalação do aplicativo. Deixe-me colocar desta forma. Imagine que você tem sua saída, você a instala. No seu telefone, você desconecta seu telefone. E o que quer que você queira fazer aqui, isso não afeta mais o seu telefone. Este aplicativo está instalado e executado, você altera seu código. Portanto, você deve pressionar Executar aplicativo, depois seus novos códigos e quaisquer efeitos que você fizer. Se você tiver um erro, corrija essas coisas execute seu aplicativo Se você fizer qualquer outra coisa quiser ver os efeitos, execute seu aplicativo Mesmo em seu telefone, você deve estar bem em seu telefone. Novamente, jogo cat leer. F028 e o próprio oito. Agora, isso é algo, então eu entendo uma coisa, o quê? Eu posso colocar esse número dentro de uma variável e controlá-lo. Que tal esse número? Por exemplo, está tudo bem se eu disser que R média é igual a zero, temos erro, y porque eu coloquei esse espaço e, claro, quero um I grande Eu uso essa média em vez desse zero, maldade. Está tudo bem ou eu tenho flecha? Deixe-me correr. Claro, vamos verificar os usuários convidados, mas, como falamos sobre quatro, eu só quero verificar todos eles para ver se estão bem ou não. Ga, é 0-8, e se eu mudar para qualquer coisa diferente de zero Por exemplo, eu digo cinco. Novamente, se eu voltar e voltar, já que é um aplicativo de sal, ele ainda não foi atualizado. Eu não vi nada. Eu não faço nada. Então, execute o aplicativo novamente. Como C. Clear e game. Eu tenho cinco, seis, sete, oito, um cinco e cinco sel, 28. Então, nós entendemos isso. Por favor, escreva todas essas coisas comigo passo a passo. todos os cursos, você deve escrever essas coisas comigo passo a passo Essas coisas são importantes, e você entende essas coisas de qualquer maneira. F cinco e cinco em si. 678, e o próprio oito. É a diferença entre esses dois pontos e t. Ok, acho que temos exemplos suficientes aqui, mas ainda tenho essa pergunta E, como eu disse, deixe-me minimizar isso. Veja, porque é uma linha, eu não tenho que mudar o botão depois de p e fechar, mas sim trocar o botão depois de dois botões depois de fechar p. Eu não preciso disso. Mas na maioria das vezes eu escrevo isso. Por quê? Porque eu poderia adicionar códigos e, se eu não escrever isso, por exemplo, deixe-me mostrar esse exemplo também. D, D é. E o que é controle D? Você se lembra? O que isso faz? Controle D. Eu duplico isso. Primeiro, eu tenho esse erro. Por quê? Porque ele não reconhece, porque você está fora dos quatro. Você não abre em permissões, apenas a primeira linha é executada. Mas como eu quero te mostrar, eu posso simplesmente remover isso e dizer, número um, um, dois. Para te mostrar qual é a diferença? Imagine que você esqueceu de abrir o Akos. Você diz que é uma linha. Qualquer comentário, qualquer outra coisa que você quiser, você escreve. OK. O que você esqueceu. Você esqueceu o que? Você esqueceu de abrir os bancos. Outra vez, você adiciona mais uma linha. O que acontece agora? Deixe-me repetir esse leer homossexual do Logcat. Eu tenho essa linha com 45678. Mas essa linha quatro não executa isso. Por favor, execute esses códigos comigo e veja você mesmo. Elas são importantes. 5678, mas esses são os únicos. Se eu considerar que isso também deve funcionar com essas quatro, essas duas linhas estão juntas. Não recebo um erro. Veja, o aplicativo não diz que você tem uma função, mas meu aplicativo não funciona como eu esperava porque só funciona uma vez. Então, se eu disser que começa aqui e termina aqui, shift peelings, o botão ao lado de PN, o botão depois disso Então eu tenho essas mãos. Deixe-me executar novamente e dar uma olhada e limpar o jogo. Eu tenho cinco, número dois. Eu tenho o número 112 e, novamente, seis , e novamente, sete, ele roda sempre comigo. Com essa linha, como eu esperava. Por causa disso, na maioria das vezes, eu os coloco no meu quarto, mesmo que no meu, se eu puder evitar isso, mas na maioria das vezes, não o faço. Mais uma coisa. Eu tenho uma pergunta muito, muito importante. Por que eu uso quatro? Eu uso 42 para fazer uma linha, um monte, eu não posso dizer uma linha, um monte de código porque pode ser um monte de código ou um número específico de tempo. E eu posso ter esse número de vezes com um determinado índice que é índice inferior e índice superior. Se eu disser de cinco a oito, terei cinco, seis, sete, oito, quatro vezes. Eu executo esse código quatro vezes nas duas linhas. Mas e se eu disser que não quero isso. Eu posso executar esse código sozinho. Veja, controle V Executamos esse código uma vez. E quatro. Eu tenho essa pergunta, quatro. Deixe-me apenas fazer o controle D. Você diz que quer executar esse código duas vezes. Controle, eu tenho dois desses códigos. Executamos isso duas vezes. Mesmo se você quiser esse número, eu posso dar zero e um, eu mesmo tenho zero e um. E quatro. Ok, deixe-me continuar com essa ação e dizer controle mais três vezes e dizer, isso é dois, isso é três. Isso é quatro. É bom? Deixe-me apenas comentar isso e dizer que isso é 0-4 em si. Se você ver, eu tenho uma, duas, três, 45 linhas, e eu tenho uma, duas, três, quatro, cinco linhas. É o mesmo, eu tenho cinco linhas. Eu tenho cinco linhas. Eles são iguais. Mas mais uma coisa, primeiro lugar, não consigo controlar os números aqui. Eu deveria me escrever e verificar, e é muito complicado. Não é nada recomendado, mas queremos tentar. Se escrevermos assim ou até mais, 20 vezes. E se quisermos mais? Devo mudar tudo e ter qualquer outro tipo de s e o que devo fazer? Eu escrevo, por exemplo, 500 linhas e tenho 500 es para verificar o que sou eu e se eu executo essa linha e verifico no ef. E se eu tiver um erro porque escrevo algo errado em uma linha. Não pode fazer isso. Especialmente você tem cinco vezes aqui. Imagine 40 vezes. O que você quer fazer? Deixe-me crescer. 100 vezes. O que você quer fazer? Você quer escrever isso 100 vezes? Não, você não pode. Que tal 1.000 vezes? Claro que você pode. Por isso, quando eu quiser repetir meu código, repito meus comandos algumas vezes que eu uso quatro. Quatro é um comando muito útil e nós o usamos em muitos lugares. Em vez disso ou escrevo 1.000 vezes, eu apenas escrevo um código muito curto. É claro, eu posso entender isso. Não consigo depurá-lo. É muito simples. É muito bom e eficiente porque também tenho menos erros. É muito rápido porque eu escrevo rápido. Economiza tempo. A propósito. Eu acabo de entrar aqui, Star Slash e aqui, Slash Por quê? Porque eu coloquei isso para você ver também. Quais são nossos vídeos anteriores? Falamos sobre esses números, onde eles estão? Byte para cerca de 100 no máximo de -128 a 127. Curto, um pouco maior em, muito grande, longo, ainda maior que em, e até falamos sobre números inteiros grandes Por que falamos sobre tudo isso? Porque eu quero ver quais dessas variáveis são boas para mim. Por exemplo, como queremos adivinhar um número, acho que a mordida é muito pequena. Curto é bom. Na maioria das vezes, eu uso in e o padrão do Android é ativado. Mas deixe-me usar o resumo. Eu apenas copio essa parte, Controle C, e pego nossa variável curta para obter o Controle V aleatório, eu adiciono uma barra, é claro Queremos dar esse número, por exemplo, menos um, e colocar esse controle x. Deixe-me pegá-lo e colocá-lo no topo do nosso código para que seja global. Aqui. Queremos que seja um número aleatório, bom nome e, em vez de p curto, seja igual a menos Eu acabei de limpar. Isso eu tenho um número aleatório curto igual a menos um. Como queremos alterar o valor dentro do nosso código, devo dizer que não é isso. Eu tenho um número aleatório variável curto igual a menos um, e eu digo comentário Este é o intervalo de curto, então você sabe, esse é o intervalo de curto, de Deixe-me selecionar isso clicando duas vezes nele. Você vê um clique duplo. Se você clicar três vezes muito rápido assim, um, dois, três, você seleciona a linha inteira. Mas se você quiser clicar uma vez, você muda o lugar em que está aqui, aqui, aqui. Mas se você clicar duas vezes, terá um clique duplo. Você seleciona essa parte. Controle C. S Se eu lhe ensino tantos detalhes, é importante para mim que você entenda cada uma dessas coisas. De qualquer forma, vamos ver um número aleatório. Controle V é igual a. Ah não, eu tenho um erro. O que acabou de acontecer? Qual é o nosso erro? Isso não é um número aleatório? Curto. Sim, é. Deixe-me verificar. Curto. Mas qual é a nossa saída de obter números aleatórios? Deixe-me verificar isso também. Controle e clique nele. Deixe-me voltar aqui. Controle isso, pressione o controle e clique para ver o destino. Deixe-me dizer isso. Para ver as feridas, obtenha um número aleatório. O que estamos trazendo para nossa variável. Retornamos int e, nesse lugar , diz que você não pode converter dentro desse short. Em alguns lugares, eu deveria mudar esse int para curto. Se eu mudar aqui resumidamente, tudo bem e não posso fazer outra coisa. Eu não posso mudar isso para curto aqui. Eu digo, faça algo com esse método para mim. Eu quero mudar isso, eu nem escrevo nada. Veja, muito curto. Eu também tenho uma string que usamos muitas vezes, de qualquer forma, muito curta. Temos nosso int, alteramos muito curto e depois o colocamos em um número aleatório. Como eu te disse, eu sempre uso na maioria das vezes, desculpe, na maioria das vezes eu uso em. Eu só quero que você veja como você pode usar o short. E se você subir e mudar essa abreviação para dentro e voltar. Você vê. Agora diz, por que você tem um curtinho dentro disso? Você deve convertê-lo novamente. Deixe-me ver. Podemos simplesmente dizer isso? É muito, muito ruim. Nós podemos fazer isso, mas eu não quero. De qualquer forma, em vez de inserir isso e alterá-lo para curto e depois mudar para in. Não é nem um pouco inteligente. É muito ruim. Acabei de remover essa parte e ela diz: é curta. Eu digo, e removo ou apenas comento esta parte. Eu tenho esse int dentro do meu int. Porque mudamos essa variável para in. Deixe-me verificar novamente. Veja, minha variável está dentro. Já que eu só quero ver, onde eu disse um número aleatório quando o declaramos e o que ele digita Talvez outra coisa menor, por exemplo, nosso valor padrão. Eu quero verificar essa variável. Eu pressiono o controle, movo meu mouse sobre isso. Você vê que você pode ver isso dentro. Mas não, eu só quero ver a linha em que declaramos isso. Eu pressiono control e clico nele para ver, está aqui. Deixe-me fazer isso de novo. Este é meu número aleatório. Pressione o controle, clique nele. Oh, esse é meu número aleatório. Aqui, eu dou esse valor a ela. Eu posso mudar para menos dois, por exemplo. Eu posso encontrá-lo muito rápido , basta clicar nele. Simplesmente assim. Mas e quanto às outras variáveis? Como, por exemplo, essa vinculação, quero ver onde declaramos essa vinculação Talvez para verificar novamente, alterá-lo ou qualquer outra coisa. Eu pressiono control para ver se está funcionando também? Eu clico nele. Depois de pressionar o controle no teclado, eu clico nele. Esta é minha encadernação. Deixe-me fazer isso de novo. Eu estou aqui Entendo, eu tenho essa encadernação. Onde declaramos essa vinculação? Pressione o controle, clique nesta encadernação, Oh, minha encadernação está nesta linha. Então, continuamos no próximo vídeo para que nosso vídeo não seja tão longo. Obrigado pela atenção e espero que você aprenda muitas dessas dicas e truques importantes. 60. Dia 9: verificando a estimativa do usuário Part2: Ensinando a adivinhação do usuário, parte dois. Este é o nosso projeto e continuamos. Agora temos nosso número aleatório. Nós o armazenamos nesta variável aqui, e queremos que, quando o usuário insira o gás e pressione o botão de ir, o PTN Queremos ver se é mais lento, maior ou o número exato. Queremos comparar essa suposição com esse número aleatório. Temos nosso conjunto de ouvintes cílicos na arte PTN que preenche Mas não queremos que o PTNS comece agora, queremos ver quando o usuário clica em PTN Vamos escrever. Começa aqui e vai. Você vê a linha até aqui. Eu só clico. Pressione inter. Eu escrevo Pt N. G. Dentro deste PT e pronto, eu quero configurar um ouvinte de cliques Eu pressiono isso e digo definido no ouvinte de cliques, eu tenho no ouvinte de cliques. Você vê que tem dois deles e pode ver a diferença. Se eu clicar no segundo, qual a diferença com o primeiro? Deixe-me clicar no primeiro. Eu tenho os parênteses e ele recebe a entrada. Qual é a entrada? Ou simplesmente não devemos falar sobre isso. De qualquer forma, se você clicar nele, por engano, você tem isso e tem aberturas e baixas. Mude ao lado do P e, claro, dos mínimos, se não o adicionasse, mas eu deveria controlar novamente o espaço , o segundo, que tem esse alcance para mim. Assim e sem parênteses. Então, quando ele coloca meu seletor de cursor lá, eu simplesmente pressiono lá A parte final vai até lá e eu estou aqui. O Android Studio organiza isso para mim. De qualquer forma. Vamos considerar isso como seu valor de suposição. Mas eu deveria verificar se está vazio ou não. Vamos escrever e então eu posso simplesmente pressionar T. Não, escreva, abra e quilos Eu escrevo de forma aberta e baixa para mim. Eu escrevo Tex ts. Text utils é para o próprio Android. Isso me dá a possibilidade. Isso é muita possibilidade. Qual deles eu quero usar, eu quero usar está vazio. Por quê? Porque quero verificar se meu texto está vazio ou não e, claro, ele retorna bulion para mim Então eu posso usá-lo em true ou f. De qualquer forma, está vazio. Vamos escrever e, pessoal, esse texto com pontos, é claro, está vazio ou não. Eu pressiono e desloco o botão ao lado do P e, claro, o botão próximo a ele para perder, eu volto um caractere e pressiono lá. Se estiver vazio, o que devo fazer? Está vazio. Et gus, dot, eu deveria mostrar um erro. Obviamente, erro é igual a deslocar o botão ao lado do inter Eu pressiono um e ele adiciona outro para fechar. Eu posso escrever meu texto. Shift e P para Big P. Por favor, em seu Sim. Eu acho que é um texto simples e razoável, mas eu deveria colocar todo o meu texto dentro de uma string. Há uma string e eu tenho dois idiomas. Eu deveria colocar essa corda dentro das minhas cordas. Claro, na versão árabe também. Eu apenas clico neste texto que escrevo e pressiono o antigo inter. Você vê esse recurso de extração de sequência de caracteres. Eu clico nele. O nome do recurso é Insira seu palpite e valor e, claro, em árabe. Claro, eu pressiono home e escrevo STR, shift que escreve para mim um sublinhado Você pode escrever o nome que quiser. Eu sempre escrevo STR antes meus recursos de string. Mas depende de você. E se for muito longo, podemos diminuí-lo. Por exemplo, se não couber, eu removo essa sua parte. Então se torna SDR, por favor, interge. Eu removo as partes que tornam minha corda um pouco mais curta, mas ainda assim meu nome deve fazer sentido. Então, se eu ler esse nome, devo entender o que essas coisas fazem. E para que serve isso? Acabei de clicar em, tenho essa sequência de pontos R SCR, por favor, adivinhe E leia o estúdio, faça isso por mim. Claro, se eu for até a string, SCR, por favor, adivinhe Eu tenho isso com valor, e também em árabe, não traduzimos o outro. Mas você pode ver isso. Você pode traduzi-lo sempre que quiser e eu simplesmente fecho, fecho Mesmo que você não queira abri-lo neste projeto, você não pode pressionar control para ir até a fonte. Eu apenas clico nele. Primeiro, pressiono control e depois clico nele. Diz que veio de dois cães diferentes. Por quê? Porque é inglês e árabe. Então eu digo, qual deles eu quero? Mostre-me o inglês. Esse é o inglês. Mas se eu disser controle, clique em. Agora, mostre-me o árabe. Ela vai exatamente para aquela linha e eu posso ver dentro da linha árabe exatamente aquela linha que me leva até lá e eu vejo o valor. De qualquer forma, feche isso novamente. Além disso, mesmo se eu clicar em coisas diferentes, por exemplo, suposição de EDT, você verá essa suposição de DT De onde veio essa suposição do DT? Pressione control e clique aqui. Quero ver a referência do recurso. Clique em EDT, acho que veio daqui. Este é meu palpite de EDT. Agora eu entendo. Acho que não mencionei que, com isso get a string, você pega sua string, pega uma string e, para pegá-la, você deve fornecer o endereço do recurso. Vá para recursos, depois vá para uma pasta de string e, claro, uma folha de string e pegue essa pasta de string. Dentro dessa pasta de string, depende do seu idioma. Agora, pegue essa variável que damos o nome. Resources, uma pasta de string dentro dessa string. Pegue esse SCR para mim. Pegue uma corda, faça isso por você aqui, mas e a nossa visão? Dentro de nossa visão, deixe-me clicar aqui para assinar uma string Slash Isso precisa de uma corda para mim. É a mesma coisa para pegar a string igual a isso, pegar uma string. Então temos isso aqui, se isso for verdade, faça isso, se não, queremos dizer, se não, faça isso na próxima parte. Se for verdade, essa parte nunca funciona. Esses códigos são muito pequenos e não são lineares. Mas, para aprender , acho melhor adicionar uma função. De qualquer forma, mesmo para isso, eu adiciono a função. Adivinhe o cheque, claro, não temos nenhum palpite de cheque. Clicamos nele e vemos essa lâmpada. Clicamos nesta lâmpada ou inter. O que nós temos? Crie uma função. Vamos criar uma função. Isso cria uma função privada para mim. O que é isso privado, como já dissemos, esse privado significa que você só o acessa dentro desta atividade do jogo. Então eu removo isso para fazer e digo, deixe-me colocar uma entrada dentro dela. O que são essas dietas? Colocamos isso aqui dentro. Claro, faça texto porque eu quero o texto, faça duas sequências. E faça isso. Isso me dá erro y porque essa diversão não tem nenhuma entrada. Você vê que está vazio, mas você dá alguma coisa. Você vê que o próximo tem entrada, mas este não. Eu posso vir aqui e escrevê-lo sozinho à mão, assim. Mas deixe-me ver se eu clico nela e vejo essa lâmpada ou isso lá dentro. Eu quero te mostrar o caminho das botas. Eu tenho essas opções. Eu digo, OK, adicione para mim. Clique nele. Diz: Aqui está você. Isso está dentro, porque nós o convertemos em. Diz: Ok, eu entro porque você me dá isso e dá algum nome a isso. Eu não gosto do nome, então eu só clico nele e mudo o nome, o resto e leio o garanhão de fazer isso por mim Então, qual nome é bom? Por exemplo, adivinhar é bom. Nosso número de suposição está aqui. Viu como isso é fácil? Não preciso devolver nada. Se eu fizer isso, posso adicioná-lo aqui. Veja, assim. O que nós queremos fazer? Queremos verificar se essa estimativa é igual ou inferior e , em seguida, esse número aleatório. Deixe-me dizer se inters é igual a. Lembre-se de que temos dois desses quatro iguais a dois porque queremos eliminar uma condição. Se você adicionar apenas um, são quatro, coloque outros dados dentro da variável ou objeto. Você coloca dois para verificar se o lado esquerdo e o direito são iguais ou não. Igual a quê? Claro, faça um número aleatório. Posso simplesmente fechá-lo novamente para organizá-lo para mim, sem mais nem menos. Se eles forem iguais, o que devo fazer? Eu quero entrar, por favor, explique por si mesmo Entenda o que estamos fazendo? Nem precisamos criar funções para essas pequenas coisas. Mas se você entende essas coisas, você organiza seu código e como você faz isso? Tente fazer você digitar essas coisas e aprender melhor. Se for igual, se for igual ao nosso número aleatório, quero mostrar nosso resultado aqui. Então, eu quero mostrar dentro desse texto. Resultado do texto. Mas deixe-me ver, eu não tenho o resultado tx porque ele pode entender o que você quer dizer com resultado txt Por quê? Como você vê isso se aplicar, está aberto aqui e fecha aqui. Se eu disser txt, eu tenho o resultado txty aqui, mas veja, eu não o tenho lá embaixo Como eu não escrevo uma inscrição vinculativa aqui, eu deveria escrever uma encadernação justa. Você se lembra do acesso aos nossos objetos, vista interna com visualização, localização, visualização por ID ou encadernação. Fazemos isso agora vinculativo. Agora eu escrevo isso. Eu tenho oito convidados, não, PT e pronto, não, eu quero uma mensagem Eu tenho esses três textos. Por que escrevo txt antes do nome deles para que eu possa encontrar minhas visualizações de texto com muita facilidade Essas são minhas regras. Não é que eu tenha dois, mas é melhor que você tenha as regras. De qualquer forma, o resultado Tt. Então, eu tenho um erro. Qual é o problema? Você se lembra do que devemos adicionar após a encadernação? Eu pressiono essa bola de luz para ver se posso ter esse ponto de interrogação ou aquele que veio com shift mais o número um. Este, esse, você vê no lado direito, você pode ver assim ou assim, assim ou assim. Porque pode ser nulo? Ou a vinculação pode ser nula? Falamos sobre isso quando declaramos nossa variável de vinculação. Claro, não é nulo. Nós damos isso, damos essa vinculação anulável. Nós damos isso. Dados, mas podem ser nulos. Por causa disso, deixe-me voltar. Temos que dizer: está tudo bem. Deixe pra lá. Claro, dizemos o que é nulo? Nulo não é nada. Não é um zero. Nulo não é zero, nulo não é nada. Absolutamente nada. Eu digo, Ok, coloque esse ponto de interrogação para mim. Se a lâmpada vermelha não acender, eu clico em outro lugar e volto. Desapareceu. E esse ponto de interrogação significa se não é nulo em relação ao resto Não temos nenhum erro. Como você se lembra, com esse ponto de interrogação, dizemos para não executá-lo se for nulo, mas se ficarmos na segunda via, dizemos que tenho certeza de que não é nulo Se for nulo, ele é executado e gera um erro. Acho que devemos falar um pouco mais sobre esse tipo de erro. Talvez no próximo vídeo. Então, não tenho certeza se você aprendeu essa parte muito bem. Claro, você pode usar assim se verificar primeiro. Como posso verificar primeiro? Eu apenas escrevo se o que esta vinculação não é nula, desse jeito Veja como podemos verificar se é igual a isso, podemos verificar se não é igual a. Eu digo se essa ligação não for igual a nula. É, então vá para a próxima linha e execute isso e eu não abro e fecho a área porque é apenas uma linha, mas eu também posso fazer isso. Não tenho certeza se tenho muitas linhas, ela também não vai para as outras linhas e posso fechá-la novamente para ordenar meu código assim, essa linha, depois dessa linha, depois disso, a parte interna novamente e, finalmente, essa é ir uma guia para lá novamente. De qualquer forma, como você lembra, eu tento nunca usar assim, mesmo que eu possa escrever esse tipo de if. Deixe-me continuar no próximo vídeo. Então, nosso vídeo não vai mentir. No vídeo anterior, meu vídeo ficou um pouco mentiroso porque adoro ensinar e me esqueci do T Study. Vamos continuar no próximo vídeo. 61. Dia 9: verificando a estimativa do usuário Part3: Verificando a suposição do usuário, parte três. Este é o nosso aplicativo e vamos continuar. Como acabamos de falar, temos essa vinculação, fornecemos esse valor e o usamos mesmo que , nessa visualização de conteúdo definida, digamos assim que tenho certeza de que minha associação não é nula Está tudo bem Porque eu simplesmente atribuo o valor a isso e uso esse tipo de. Tenho certeza de que quando eu apenas dou o valor. Caso contrário, ponto de interrogação. Mas mesmo aqui está tudo bem que você coloque um ponto de interrogação. Então você se acostuma com isso. E você vê esse erro. Se você subir e descer, desaparecerá. É o ID E b. E às vezes o próprio IDE dá o erro. Você vê um erro interno de ID. Nós clicamos nele. Nós reportamos ao Google e na próxima versão, esses erros e bugs se tornaram cada vez menores. De qualquer forma, basta pressionar isso e Kos. Deixe-me ver. Podemos aprender mais alguma coisa aqui? Porque mesmo se falarmos sobre isso, isso também é possível. É igual a esse ponto de interrogação. Se eu não escrever isso e, claro, isso e eu simplesmente colocar esse ponto de interrogação aqui da mesma forma. Eu tenho uma ideia. Deixe-me até comentar isso e continuar O que acontece se eu não der o valor a essa vinculação? Essa visualização de conteúdo definida não se importa se você executa esse código ou não. Essa visualização de conteúdo definida quer alguma coisa. Então, eu não dei o valor a essa vinculação. E eu digo, Ok, se eu não te dei nada, não corra. Portanto, não execute esta parte, mas defina a visualização do conteúdo ainda quer alguma coisa. Deixe-me executar o aplicativo para aprender mais algumas coisas aqui. Meu aplicativo acabou de ser lançado e eu quero ver o registro e, claro, meu valor visual. Primeiro, deixe-me clicar neste jogo. Início do acidente. Eu não tenho o acidente. Por quê? Porque você vê que meu valor visual está aqui. Diz que só me mostre os registros que têm meu valor visual, mas eu não os tenho. Deixe-me remover isso. Oh, eu vejo meus erros agora. Esse é o meu erro. Eu tenho meu erro agora, em qual processo, neste processo. Esse é o nome do meu pacote. Até eu tenho meu ID de processo. Bom. Veja esta primeira linha aqui após esse ID do processo. Eu simplesmente vou, vou. Claro, eu vejo essa atividade de jogo, minha atividade de jogo. Ele diz que não é possível adicionar uma visualização secundária nula a um grupo de visualizações. Você coloca nulo aqui. E o que mais eu tenho? Eu desço. Eu causei por. Não o tempo todo, mas na maioria das vezes eu tenho esses causados por. Você vê que o texto não pode adicionar uma visualização secundária nula a um grupo de visualizações Deixe-me simplesmente não poder adicionar uma visualização secundária nula a um grupo de visualizações. Você vê as mesmas imagens aqui, você vê lá embaixo. Na maioria das vezes, simplesmente, eu só descia para ver o que é causado por... mais uma coisa. Você vê que você tem esse grupo de visão ponto Java grupo de visualização ponto Java, linha, linha, linha alguma coisa, linha alguma coisa. Essas aulas são para o Android Studio. O que eu quero nesta linha, y, esta linha. Por causa do cose, primeiro, esse é o nome do meu próprio pacote. Esse é o nome do meu pacote. Depois do nome do meu pacote, tenho essa atividade de jogo. Esta é minha atividade de jogo aqui em cima. Então eu tenho, deixe-me subir um pouco. Você vê essa criação, eu tenho essa criação. O que acabou de acontecer na minha atuação sobre atividade do jogo na criação. E, claro, eu tenho um link aqui, atividade do jogo dot cut line 19, você tem um erro nesta linha. Se eu clicar nele, deixe-me correr o risco novamente aqui. Estou aqui. Eu apenas clico nele. Mostre-me esse nome de pacote, essa atividade, crie e exatamente essa linha. Isso me mostra essa linha. Clique na linha 19. Defina a rota de vinculação da visualização de conteúdo, você tem aí. Se eu verificar os erros de Java, é claro, eles são os locais criados pelo erro Mas eu não deveria mudá-los. Eu deveria corrigir minha própria atividade. Então eu encontro minha linha de atividade 19, e digo que o que é causado por Song é tão curto, isso causado por e essa primeira linha. Claro, terceira linha, essa linha, essa terceira linha depois do ID do processo, primeira linha e linha de caso, eu li essas duas e dentro de todos esses textos, você não consegue ler todas as linhas, todas as letras e todas essas classes. Eu encontro meus próprios códigos e classes e entro em meus próprios códigos para descobrir o que há de errado com meus códigos. Isso também me ajuda porque diz o que está errado. Na maioria das vezes, quando quero pesquisar um erro, eu procuro um erro, simplesmente vou até as pernas e procuro por ele ou a partir daqui, daqui ou apenas isso causado por pesquisar isso com algum teclado, por exemplo, se não consigo encontrar a coisa certa, adiciono outros textos à minha pesquisa. Veja, se eu cair, tenho ainda mais. Então, eu tenho muitos dados dentro do meu erro, mas eu mostro, acabei de mostrar esses e essas são a parte mais importante, essas três partes. Deixe-me minimizar isso e isso e ver isso. Se eu escrever assim, mudar uma, duas vezes ou apenas se eu colocar assim, isso me dará nulo Diz que não posso aceitar o erro nulo. Se eu colocar assim, não vou correr, porque é nulo Eu não é igual a nada porque não funciona. Eu também tenho nulo e a visualização de conteúdo definida não pode ser nula, e também tenho um erro Por quê? Como não tenho erros nisso, tenho um erro na minha visualização de conteúdo definida. Porque eu coloquei que mark, é igual ao controle X com isso sem nada, e isso me dá um erro. Porque eu tenho que colocar alguma coisa. E se eu apenas copiar isso, forneceremos esses dados à vinculação. E se eu apenas copiar isso e dizer, você quer esses dados aqui, mas não isso, eu diria, ponto, rota. Você se lembra de que escrevemos root e também no final do nosso comando anterior. Então pegue a raiz dessa atividade do jogo e coloque-a com essa atividade do jogo, conecte essas duas umas às outras com essa visualização de conteúdo. Então, acho que corrijo exatamente esses dados e a raiz B é exatamente como eu digo, Binding dot root. Exatamente, eu coloquei esses dados aqui e depois a raiz do ponto. Deixe-me ver. Está tudo bem? Vamos executar o aplicativo para ver juntos. Então eu executo meu aplicativo, L cat. Eu não tenho nenhum erro. Claro, primeiro eu deveria pressionar este botão do jogo. Eu minimizo isso. Minha visão está aqui. Não tem problema. Uma visão de conteúdo, trabalho. Funciona. Agora, deixe-me dizer que dez e 20 começam. O que acabou de acontecer? Nada acontece. Por que não acontece? Se eu pressionar este botão para iniciar, devemos fazer alguma coisa. Se eu pressionar este botão de início, essa linha de clique deve fazer alguma coisa E mesmo que esses dois estejam visíveis. Por que não é? Porque dizemos que se a vinculação for nula com esse ponto de interrogação, não faz o resto desde o início desta aplicação até aqui. PTN go e PTN um carrinho. As peças não funcionarão. Eu pressiono um botão de partida, mas essas duas visibilidades não mudam. Eu não cometi nenhum erro. Não travou, mas não está funcionando porque ignora esses códigos e, aqui, esses códigos e, claro, o resto, desde o início da aplicação até o final Tudo isso é ignorado. Deixe-me verificar e mudar isso. Portanto, é nulo e não demos nada a ele. Portanto, é nulo e não será executado. Deixe-me te mostrar esse caminho. Turno número um, número um. Ainda é a versão antiga. Devemos fazer isso de novo, pressione aqui. Deixe-me ver o que acontece. Eu vou para aquela visualização do jogo, mas meu aplicativo acabou de fechar. Deixe-me ver o gato Log. Eu tenho esses erros. O que é isso? ponteiro nulo. Você se lembra? Eu digo, você pode ler causado por Cause by, qual é o responsável? Quem é responsável. A exceção do ponteiro nulo é responsável. Onde isso acontece? Dentro do jogo, a linha de atividade 55 começa aqui. Porque eu só digo que tenho certeza, mas não é. Veja, é nulo, e a linha 25 É o lugar que até eu chamo essa função. Eu chamo meu ouvinte inato. Mesmo quando eu chamo isso, diz: Sim, você pode ver e verificar quando chama essa função e deve verificar onde o erro acontece. Qual exceção de ponteiro nulo de erro. Eu nem preciso clicar em nada nessa visualização. Por quê? Porque aqui , a criação acontece exatamente no momento em que minha visualização é aberta. Essa função chamada causou o problema dentro dessa criação e dentro desta, essa linha me dá o erro dentro dessa função. Nem eu preciso clicar em nada. Quando a criação acontece, temos esse erro. De qualquer forma, resumindo, você diz, tenho certeza de que não é nulo, mas é nulo porque é nulo, você tem erro nulo você tem Você pode ver isso em outros lugares. É muito bom se familiarizar com isso e saber o que essas coisas causam? Quando isso acontece. Agora você pode entender por que estou dizendo uso apenas um ponto de interrogação. Então, erro nulo. A pior coisa que aconteceu é que essa coisa não funciona, mas não trava, não dava erro. Só como um lembrete, veja que eu escrevo se não for nulo , então execute a próxima linha assim Mas por que nos incomodar? Em vez disso, basta colocar um simples ponto de interrogação. É melhor. Até aqui, aprendemos muitas coisas e espero que você entenda o porquê do ponto de interrogação e o que acontece se for nulo e a outra coisa, continuaremos no próximo vídeo, que você tenha esse vídeo totalmente voltado para esse assunto 62. Dia 9: verificando a estimativa do usuário Part4: Verificando a suposição do usuário, parte quatro. Vamos continuar. Continuamos sem comentar isso e, é claro, também descomentamos essa alteração É vinculativo. E, claro, ponto de interrogação. Temos esse erro. Clicamos aqui. Volte. Não temos nenhum erro e lemos o bug do estúdio. Falamos sobre tudo isso. Vamos descer. Temos essa suposição de verificação e aqui, queremos remover isso também e essa parte, temos essa ligação que dizemos dentro dessa visualização. Precisamos do resultado do texto. O que você quer fazer? Com resultado de texto, texto, eu quero que o texto seja igual, desculpe, eu deveria colocar esse ponto de interrogação aqui também No final do turno e no botão ao lado do inter. Eu quero inserir texto. Como eu disse, seu palpite é verdadeiro. Quando essas coisas acontecem, quando seu palpite é igual a um número aleatório. Você, você venceu. Posso apenas dizer que ganhe, por exemplo, ou não, seu palpite é verdadeiro. Vamos corrigir o aviso também. Clicamos nessa luz, mas, como você sabe, podemos dizer que pressione aqui. Se assim dissermos, estúdio não se importa com esse aviso. Às vezes, um estúdio nos avisa, mas não queremos mudar essa parte. Talvez seja porque é um erro. É um erro ou qualquer outra tentativa ou apenas com a moto do estúdio. Se dissermos para pressionar. Então não se preocupe com isso. Veja, eu digo pressione isso e minha cor amarela sublinhada desaparecerá Deixe-me apenas comentar isso. Eu tenho isso embaixo de amarelo para dizer Sim, você tem um problema aqui. Mas se eu disser, deixe pra lá, diga: Ok, eu não me importo com essa. Mas eu quero e realmente me preocupo com meu texto. Então eu coloquei em cordas. De qualquer forma, nós entendemos o que é ignorar a coisa também. Agora, vamos continuar. Vamos fazer isso de novo. Desta vez, usamos inter em vez de pressionar, extraímos um recurso de string Então, também em árabe, nós verificamos isso. Agora, nosso nome. Claro, eu pressiono para casa e digo STR abaixo da linha. Por quê? Porque eu adiciono SCR ao nome de todas as strings. E pressione. Eu verifico esse árabe também, pressiono k. Agora, eu tenho essa string g de onde, do resource, da string fuller, das minhas strings, é claro, e esse é o nome da minha string STR, seu palpite é verdadeiro. E, claro, se eu colocar meu mouse sobre ele, você pode ver o valor. Seu palpite é verdadeiro, e isso é padrão. E o árabe, seu palpite é verdadeiro. Você vê? Assim, posso verificar qual é o padrão e o que é árabe também. Espero que você entenda tudo isso muito bem. Agora, espere um segundo. E se não for igual? Então, isso não é verdade. O que você deve fazer então? Nós dizemos: É igual ou menor ou maior. Então dizemos I se o primeiro não for verdade, agora, verifique isso se, se o primeiro se não for verdade, agora, verifique, esse se. Se nosso número aleatório for maior do que o palpite? Se nosso número aleatório for maior do que adivinhe. Agora devemos fazer alguma coisa. Claro, e um lá atrás. Agora, o que devemos fazer então? Dizemos que basta controlar C desta vez e controlar aqui. Acabei de entrar aqui e não vou remover tudo isso e começar a digitar string. Eu apenas seleciono essa parte e digo: posso começar a digitar ou remover primeiro e dizer mais Então Andrew, esse estúdio acabou de dizer, eu não sei nada melhor do que isso. Você não tem essa corda. Claro, eu estou aqui e depois pressiono tudo aqui e digo, crie essa string para mim. Eu clico nele. Agora, novo recurso de valor de string. Também é árabe, eu verifico. Só vou escrever aqui. Qualquer coisa que você quiser, você pode escrever. Mas eu estou dizendo que o número é maior do que o seu palpite, e eu coloco um ponto para ficar mais bonito, ou até mesmo eu posso fazer com que esse n seja maior com n maiúsculo. Depende de você Então eu pressiono. E eu também tenho um CR maior do que eu. Deixe-me verificar uma string, um CR maior que, eu tenho, e um número arábico CR é maior do que eu também Deixe-me fechar e fechar também e minimizar. Então eu crio este também. O que eu? Isso também não era verdade. Eu digo E. Deixe-me verificar novamente. O número aleatório é menor que. Você vê isso menos do que no teclado. Se você pressionar Shift e o botão ao lado de M. E o outro na parte superior é apenas o botão depois disso. Não apenas ao lado de M, pressione Shift e dois botões à direita ao lado de M. Você pode escrever este. Deixe-me continuar. Antes de continuar escrevendo, vejo essa linha amarela. O que diz isso? Deixe-me verificar. Eu digo que a condição de um número aleatório menor que a estimativa é sempre verdadeira. Por quê? Você vê que tem três situações, três opções. Ou você é igual Sim, eu tenho igual. Você é maior ou menor que. Então você verifica, não é igual. Você verifica, não é maior que. Portanto, é menor do que mesmo que você não escreva essa parte, quando é menor, você alcança esse “se”. Então, se você escrever isso se ou não, não há diferença. Então, podemos simplesmente excluí-lo, e o Andre studio também diz que é sempre verdade Se alguém chegar aqui, passe por esses dois. É verdade porque não é igual, não é maior, então é menor do que você pode removê-lo e ainda está tudo bem. E eu também tenho outro aviso. Eu coloquei meu mouse nele. Diz que Else tem corpo vazio. O que isso significa? Significa que você não tem nada aqui. Isso não inicia você. Não é um erro, mas diz que é melhor você escrever algo aqui. Mas se você não escrever nada aqui, não há diferença entre essas coisas estarem aqui ou não. Deixe-me continuar. E nós apenas copiamos essa linha. Nós apenas colamos. Encontrar a série de texto maior do que é apenas controle C e controle e menor que menor que. OK. Agora, nós também não temos isso. Se eu colocar o mouse nele, ele também me dará essa opção. Crie um recurso de valor de string para isso. Eu posso clicar nisso assim. É o mesmo valor árabe, é claro. Bem, eu posso simplesmente escrever que o número é menor do que seu palpite e ponto. Então eu apenas pressiono ok. O erro ainda está lá porque ID, clique aqui, clique novamente. Desapareceu. E está tudo bem agora. Deixe-me rodar meu jogo para ver o que acabou de acontecer. O que nós fizemos? Deixe-me minimizar isso e ir para o jogo. Agora, eu tenho o primeiro número, digo 30, e o segundo número, digo 40, inicie o jogo. Eu tenho um número entre esses dois. Meu palpite? Qual é o meu palpite? Eu não coloco nada. Eu deixo em branco. Por favor, vá. Por favor, insira seu palpite, eu tenho um erro que mostra que eu deveria colocar algo dentro Então eu digo, deixe-me dizer 35 para ver o que aconteceu. O número é maior do que o seu palpite. Então, vamos subir. Que tal subirmos para 40 41, por exemplo. Isso é bom? Vá. O número é menor do que você imagina. Claro, porque o máximo é 40. 35 e 40, 37. Que tal isso? Vá. O número é maior que. 39, 39. Que tal isso? O número é menor. Sete, 39, é 38. 38. Bom jogo. E se eu disser vá, seu palpite é verdadeiro. É o número 38. Bom jogo, bom trabalho. Escrevemos nosso código, é ótimo e funciona, e também aprendemos muitas outras coisas. Acho que posso te ensinar mais uma coisa nessas poucas partes. Faça o usuário adivinhar. Essas são todas as coisas importantes que, de alguma forma, devemos aprender. De qualquer forma, essa é minha técnica de registro. Acabei de te mostrar aqui. Veja como podemos escrever nosso log, assim, Control C, acabei de copiar isso. Eu tenho esse cheque, eu acho. Isso é muito útil em grandes programas. Eu a altero para adivinhar e registrar a classe de importação. S. Agora, se a suposição for verdadeira, eu só quero dizer que a primeira coisa que faço é mudar essa tática. Por exemplo, dois são um. Às vezes, coloco um número no final, para que não seja complicado e não se perca com as outras coisas dentro do Android. Então eu coloquei isso como uma suposição. Veja, temos, por exemplo, atividade do jogo, linha 40, que mudamos para 87 e dizemos que adivinhar é verdade g é igual a adivinhar para uma string, e então eu escrevo novamente, basta copiar esse número aleatório é uma sequência de missão numérica aleatória Você vê o que eu estou fazendo aqui? Deixe-me entrar aí. Então, eu quero verificar, se alguma vez que entramos nesta véspera, eu tenho alguns dados. Quero verificar meus dados importantes. Como eu disse, em grandes programas, eu verifico os problemas e outras coisas assim. De qualquer forma, a linha, e depois disso, e antes disso, eu jogo atividade, é claro, nome. Ou para cortar um arquivo, usuário adivinha que é verdade Essa é a parte em que isso acontece, e então eu digo: Ok, a variável de adivinhação. Primeiro, eu escrevo a suposição, e depois escrevo, esta é a variável de suposição. E então eu digo e essa variável. Está lá dentro. Esse valor está dentro do nome dessa variável. Claro, eu tenho que escrever essas duas strings porque no log, eu tenho que converter isso em string. Todas essas são minha mensagem. Deixe-me copiar essa parte. Controle. Eu realmente gosto de te ensinar isso na linha 91. Adivinha grande, essa parte é grande e, claro, adivinhe é essa e um número aleatório é esse. Dentro disso, verificamos se escrevemos essa condição como verdadeira ou não. Porque se virmos meu número aleatório é menor do que adivinhamos, entendemos que em algum lugar escrevemos algo errado. De qualquer forma. Entre controle, novamente, suposição do usuário é baixa e, claro, a suposição é essa, número aleatório é esse Viu como é bom? Posso até escrever um número de nome variável ou número de suposições globalmente e adicioná-lo antes ou antes dessa suposição Aqui, posso acrescentar que esta é a primeira entrada, segunda entrada, a terceira entrada e todos os outros dados de que preciso. Então eu executo meu programa, deixe-me mostrar isso também. C. Vamos correr. Deixe-me ir ao jogo e, claro, esclarecer e controlar, verificamos a suposição e, claro, minimizamos isso. Eu quero jogar um jogo. 20-30 e comece, seu palpite. Meu palpite é 25, vá. Minimize isso e aumente o zoom duas vezes, o número é menor do que você imagina. Então 22, que tal isso? Go, meu palpite é t. E se eu disser 21, vá e depois 22, vá. OK. Agora, deixe-me verificar o Log cat. Este é meu palpite: registros telefônicos e datas. Nossos minutos, segundos e ainda menos do que isso. Então, atividade do jogo, minha primeira ação nesse período é a atividade do jogo, linha 87. A suposição do usuário é baixa. Oh, acho que escrevi algo errado. Eu deveria mudar o número da linha. 87. Sim. Desculpe por isso. Eu deveria mudar esses 295. Mas você entende o ponto. De qualquer forma, a suposição do usuário é baixa. Acho que é 25. Mas o número aleatório é 22. C acho que é 25. Então eu tento novamente. Eu digo, acho que 22. O número aleatório é 22. Agora, onde estávamos, o usuário acha que é verdade. Por quê? Porque devemos estar dentro disso, se adivinhar 22, número aleatório 22. De qualquer forma, eu digo, o número aleatório é 22, acho que 21. Acho que é maior então. Eu até escrevo esse toque também. Entrada. Acho que escrevo ao contrário. De qualquer forma. Mas eu te mostro o ponto. Eu também dou uma olhada. Eu faço isso assim. Está muito bem e depois porque é 22 e 22. Deixe-me esclarecer isso. E pare com isso também e minimize. Aqui está baixo porque meu palpite é baixo e aqui está o pico. E se eu escrever isso errado, por exemplo, ao lado. Quando executo o aplicativo, dou olhada e vejo que meu palpite é, por exemplo, 50, meu número aleatório. É 20 e eu digo maior então. Eu acho que está errado, e então eu vim aqui porque vejo minha variável, eu digo, está errada, eu vim aqui e entendo, essa parte, eu escrevo essa parte errada. Assim, confira nossos programas maiores para ver onde e o que está errado. Agora, se eu correr para cima novamente, agora, eu ganho o jogo novamente. Agora deixe-me apenas o. Este é meu diário. Agora, eu vim aqui na linha 97. Meu palpite é baixo. Por quê? Porque meu palpite é 35, o número aleatório é 37. Acho que, novamente, meu palpite é 39, o número aleatório é 37. Por causa disso, meu palpite é grande. E então eu mudei esse 39 para 38, é grande, e depois sete, é sete? Sim, é 37. São dois. Agora, como eu disse, esse tipo de escrita é quando você tem um grande programa, não consegue descobrir onde está o problema. Eu escrevo em muitos lugares assim e não esqueço. Não o escreva nos lugares em que você não precisa. Veja se você, por exemplo, escreve aqui. Os lugares em que você não precisa, você apenas desperdiça o lugar que você gosta. Por exemplo, você pode fazer isso com 100 curtidas, mas escreve 500. E você perde muito tempo para encontrá-los. Por exemplo, aqui, é um código simples. Mostramos erro. Por que eu deveria escrever algo parecido aqui? Não é razoável. Mas nos lugares em que temos situações complicadas, preciso ver diferentes variáveis lado a lado e apenas uma coisa específica. Às vezes eu uso assim. É claro que também existem outras formas. Falaremos sobre essas formas no futuro. Mas acho bom entender que também temos esse jeito. É uma maneira muito simples, como você pode ver. Mesmo que não precisemos usar uma ferramenta de estúdio complicada e pronta. É uma maneira simples e pode ser usada lado a lado com outras formas que aprenderemos no futuro. Acho que podemos encerrar essa parte adivinhando e eu comento isso e os coloco dentro do código, para que você possa ver como e se você escrever alguma coisa com erro, você pode vê-los aqui. Obrigada. 63. Dia 10: relatório Button, parte 1: Botão de relatório, primeira parte. Então, acessamos o botão de relatório para mostrar esse relatório. Onde estávamos? Queremos mostrar nosso relatório dentro dessa visualização de texto. Mas primeiro, antes dessa visualização de texto, deixe-me falar sobre essa gravidade. Primeiro, devo alterar conteúdo desse invólucro para corresponder a uma patente como esta. Então eu tenho toda a área. Agora eu posso te mostrar diferentes gravidades. Por exemplo, escreva, somos assim à direita ou à esquerda assim à esquerda. Você vê a diferença? Que tal um começo e um fim? Deixe-me ver. Eu tenho coisas diferentes para começar. Um começo significa esquerda em inglês porque o inglês escreve da esquerda para a direita. Então, resta começar em inglês . Quase no fim. Deixe-me verificar se significa em inglês. Porque, como eu disse, em inglês, escrevemos da esquerda para a direita, então nosso final é o certo. Mas se mudarmos nosso idioma, por exemplo, em árabe, escreveremos da direita para a esquerda. E então o final em árabe significa esquerda porque da direita para a esquerda e final significa esquerda em árabe. Exatamente por causa disso, usamos esse fim para acabar, uma espécie de começo. Essas coisas em diferentes idiomas, com base na esquerda para a direita ou da direita para a esquerda, podem ser diferentes. Mas, por enquanto, deixe-me não falar sobre essa restrição de ponta a ponta e outras coisas e apenas falar sobre essa gravidade Então, deixe-me dizer que temos isso no início e um pouco de zoom. Portanto, devemos mudar nossa direção de visão. Então, subimos aqui e escrevemos a direção do DR, mudamos a direção do layout. Agora é da direita para a esquerda. Você vê a diferença. Qual parte é diferente. Você vê esse resultado na parte inferior. Deixe-me ampliar o zoom Zoom um pouco mais. Ok, esse resultado, você vê no momento, meus resultados à direita, porque a direção do meu layout é da direita para a esquerda. E as outras coisas baseadas nisso, aqui são diferentes agora. Mas eu não quero te mostrar isso. Eu quero te mostrar outras coisas. Então eu apenas pressiono inter e digo, novamente, direção. Desculpe, devo mencionar que se você usar apenas essa direção, direção do layout, verá que essa direção do texto não tem diferença e pode ficar confuso porque essa direção do layout é para o nosso layout. Você vê como o layout é alterado, mas deseja alterar a direção do texto para que esse texto possa ser afetado. Então eu escrevo novamente a direção do texto da direção do IR da direita para a esquerda. Então, minha direção de texto dentro desse layout de restrição agora é da direita para a esquerda, como em árabe Então, se eu disser essa visualização de texto, a gravidade é um começo. O que significa começar? Um começo significa o lugar onde você começa a escrever. Então eu escrevo da direita para a esquerda. Então, meu começo é agora. Deixe-me mudar isso de novo. Ok, temos da direita para a esquerda. Deixe-me dizer da esquerda para a direita, LTR significa da esquerda para a direita, RTL significa da direita para a Então, da esquerda para a direita, você vê que o resultado volta para baixo, este aqui. Então, agora o texto da esquerda para a direita, como em inglês, da esquerda para a direita, da esquerda para a direita. Agora, minhas mensagens vêm para a esquerda. Por quê? Porque é da esquerda para a direita, e eu digo, quero começar se eu disser, e como você pode imaginar, vai para a direita. Então, se eu quiser escrever, por exemplo, para este texto, você margem. Deixe-me escrever a margem de margem. Margem, a margem que eu quero para o meu site, por exemplo. Este, com margem direita. Quanto? Por exemplo, dez DP. Eu tenho margem direita, dez DPI. Eu estou ganhando. Eu tenho a recomendação que é melhor escrever o fim da margem. Por que a margem termina? Por que Andrew de Studio disse que é melhor escrever margem em vez de margem direita. Veja, meu direito é meu fim agora. Minha direita aqui é igual à minha extremidade porque é da esquerda para a direita. Deixe-me te mostrar da esquerda para a direita. Então diz, extremidade direita em vez de direita. Por quê? Você pode entender isso agora porque quando você muda seu idioma, se você escreve, quando você muda seu idioma em árabe, a escrita fica à esquerda. Mas se você escrever isso nós, quando você muda seu idioma, não há diferença nisso, nenhuma diferença. Por causa disso, Andrew S diz que é igual a dizer, e é melhor porque se você mudar seu idioma, isso muda a mudança final. Então, acho que também falo sobre isso o suficiente e simplesmente removo isso. Acho que você entende como corrigir esses problemas em diferentes idiomas. Minhas instruções não devem ser corrigidas. Deve ser diferente em um idioma diferente com base na esquerda e na direita desse idioma. E eu acho que você entende o significado desse fim a fim e de um começo para um começo. Isso é diferente em diferentes idiomas. E você vê que estamos em e agora, sim. E se eu disser conteúdo embrulhado no início do vídeo, não há diferença. Por quê? Porque está consertado. Não há esquerda nem direita. Não há espaço para se mover. Por causa disso, eu o altero para combinar com o padrão, para que eu possa mostrar qual é a diferença. E, claro, eu subo e removo esses dois. Ok, vamos remover isso. E na parte inferior, essa gravidade, porque ela não faz nada por causa dessa interrupção do conteúdo, podemos simplesmente remover isso também e remover esses espaços E nesse look não há espaço extra e estou entrando aqui. Então, vamos à nossa atividade de jogo para continuar programando. Então, queremos escrever código. E se clicarmos nesse relatório, quando clicarmos nesse relatório, ele deverá estar em altura. Não deve mais estar escondido. Essa visibilidade não deveria desaparecer. Então, deixe-me ir aqui. Ah, em It listener, temos esse ouvinte innit e clicamos em BTN start e BTN go. Você pode simplesmente minimizar isso e minimizar isso também e pressionar enter aqui, digamos que BTN relate nosso terceiro botão, pressione ponto, defina e clique no ouvinte Inter. Então, o que queremos mudar? Queremos um relatório de cartão. Relatório do cartão, verifique o nome. Esta é a visualização do nosso cartão de material. Nós não queremos isso. Queremos a identificação. Esse é o nome Card Report. Então, eu apenas controlo C ou simplesmente posso escrever o relatório do cartão ou simplesmente colar esse relatório do cartão. Este relatório do cartão, acabamos de dizer que a visibilidade desapareceu, está oculto. Isso está escondido. Agora eu quero mudar isso. Quando esse botão é pressionado, quero que a visibilidade seja alterada. Eu pressiono dot my visibility, apenas escrevo V e pressiono Center na visibilidade. A primeira coisa é igual ao ponto de vista visível, lembre-se, não a um pequeno V. Você deve escrever V grande, ponto de vista E se eu esquecer? Imagine que eu esqueci de escrever maiúsculas. Eu escrevo um pequeno. O que simplesmente acontece? Deixe-me te mostrar. Eu tenho um erro. Portanto, não se lembre de que você deve usar V. Essa linguagem diferencia maiúsculas de minúsculas. Visualize assim com V maiúsculo e visível. Agora, o que queremos fazer? Nesses dois ou três vídeos, acho que fazemos três vídeos. Queremos salvar as coisas que o usuário insere no gás dentro de nossa variável, algum lugar, nem mesmo uma variável Queremos salvá-lo em algum lugar nesse caso, dentro da nossa variável. E depois disso, quando o usuário pressiona o relatório, mostramos esses dados dentro do relatório. Então, queremos salvar esse valor em algum lugar. O que podemos usar? Você se lembra que temos essas variáveis. Assim, salvamos dados dentro dessa variável. Acho que devemos adicionar alcance também. Deixe-me adicionar o intervalo também. Aqui dentro, eu deveria pressionar Inter e dizer média é igual, por exemplo, zero, e máximo é igual, ou seja, seja Então, temos esse amin e MC e viemos aqui pegar um número aleatório Temos esse r. Removemos esse Varmin e Varmax. Então, temos min e max. Por quê? Porque queremos verificar se o usuário não sai dessa faixa. Então, criamos esses varmin e max globalmente, e aqui embaixo, deixe-me ver aqui embaixo, dizemos que Min e Max têm seu E quando queremos adivinhar aqui primeiro, antes disso, escrevo se meu palpite é maior que Max ou pressiono Shift e pressiono essa barra de pacote entre meu espaço de pacote e inter Veja se eu não pressionar Shift, é assim. Isso. Mas se eu escrever shift, é assim. Porque eu quero escrever ou, digo duas dessas. Dois desses significam ou. Você escreve isso ou deixe-me remover isso. Como eu disse, acho que é maior que o máximo, e também acho que é menor que os homens. O que devo fazer? Eu quero te contar e, claro, entrar aqui e outra aqui. E pressione delete, delete e não delete, pressione shift e agora delete. Pare. Eu tenho meu Ls E. Então, como eu disse, se isso acontecer, eu deveria apenas dizer o ponto de ligação EDT sim, mark, D, deixe-me mostrar o erro Qual é o erro? Ou eu simplesmente escrevo, copio isso e aqui colo essa string. Que string é essa string, SR SR, dizemos fora do alcance, fora do alcance. Eu disse, eu tenho isso? Não, eu não sou, então me dá um erro que eu não tenha isso. Então, acabei de criar esse valor de string. Nós apenas pausamos o ensino anterior porque eu quero adicionar isso Só leva alguns minutos. Então, o que devemos escrever? Basta pressionar árabe também, e o que devemos escrever? Escreva que seu número está fora do alcance. Assim mesmo. E pressione OK. Oh, acabei de executar meu aplicativo e pressionar o jogo, e tenho, por exemplo, 5.000 para iniciar o jogo. Meu palpite é cinco, está fora do alcance. Pressione go, está fora de alcance. Se eu disser 5.000 algo fora do alcance, mas 55 50-100, é bom Você vê? Portanto, meu usuário não consegue escrever valores fora do intervalo. Eu só quero adicionar isso também. Então, estou apenas dizendo que quero uma variável que mantenha os valores dos meus hóspedes. Então, aqui, eu pressiono o Inter e digo Por que denunciar, eu acho que é um relatório de bom nome Como você sabe, podemos simplesmente dizer que é int com Big, é int e dizer que é null Exatamente o lugar em que declaramos e criamos essa variável. Porque se não escrevermos esse nulo, ele diz: você não pode deixá-lo, você deve dar algo a ele E mesmo se eu disser, por enquanto, dê nulo. Eu também digo que é do tipo não nulo. Você não pode considerá-lo nulo. Por causa disso, dizemos apenas ponto de interrogação. Portanto, agora é anulável e podemos considerá-lo nulo. Ou simplesmente podemos dar a isso um valor, por exemplo, zero ou menos um. Sem diferença. E como temos o int e atribuímos um valor a ele, não precisamos mais desse int porque o Android Studio, a própria linguagem Cartlin, fornece esse relatório, do tipo int Então, isso causa alguns problemas, mas por enquanto, deixe-me continuar com isso. E vá para PtNG Onde está RBTno? Isso é RBTng e fique aqui, pressione inter. Eu quero esse número. Controle C aqui. Desculpe, dentro do meu relatório. Meu relatório é igual a este. Então, até agora, salvamos esse valor em nossa suposição editada. Qual deles? Essa suposição editada em nosso relatório. Então, é o suficiente para este vídeo, continuamos na próxima parte. Portanto, nosso vídeo não fica muito longo. 64. Dia 10: relatório Button, parte 2: Botão de relatório, parte dois. Vamos continuar. Chegamos a essa parte e eu apenas escrevo o comentário e digo para fazer. Veja, é como um comentário normal. Por quê? Porque eu coloquei um espaço entre eles. Como é normal escrever, se você escreve para fazer, não é nada, é só uma tarefa. É só um texto simples. Mas se você remover esse espaço assim, pressione construído, é diferente. Você vê isso de uma cor diferente. Por quê? Porque eu escrevo isso para me lembrar que eu deveria voltar aqui mais tarde. Deixe-me ver o que fizemos na sessão anterior? Eu escrevo meu valor de estimativa de edição dentro da variável do meu relatório. Então eu posso mostrá-lo quando pressiono o botão de relatório. Mas quando íamos fazer isso, lembro que não adicionei esse intervalo. Então, na sessão anterior, eu adicionei isso também. Eu digo, Ok, eu tenho o máximo. Eu tenho maldade. Qual é o meu limite máximo? Meu primeiro valor, meu segundo valor é meu intervalo. Então, eu quero dizer que meu palpite deve estar entre minha média e meu máximo. Então eu digo que meu palpite é maior que o máximo, está errado. 00 significa que mesmo que uma delas seja verdadeira, vá para o IO, meu palpite é menor do que eu. Então, por exemplo, se eu disser 50-100, se eu escrever cinco, é claro, não é mais do que 100, mas essa é verdadeira Mesmo que uma delas seja verdadeira, quando você diz, então eu me tornei verdade e meu I corra daqui até aqui roda e meu palpite de edição, o erro virou esse texto e nada mais cheque. Por quê? Porque se isso não for verdade, o resto dessas verificações é por causa disso. Acho que digo essas coisas um pouco rápido e deveria explicá-las melhor. Então, deixe-me ver o que mais? O que mais? Esse O? Como posso escrever isso ou? Veja, deixe-me adicionar um pouco de espaço. Então, eu tenho esse botão entre meu espaço de entrada e de pacotes. Se eu escrever, ficará assim. Você vê isso parecer assim. Mas se eu pressionar Shift, se tiver uma linha reta como uma coluna acima desse sinal. Então, se eu pressionar Shift no meu teclado e ativar o segundo caractere nessa tecla, pressione Shift e pressione novamente. Então eu tenho isso. Mas se eu não pressionar a tecla Shift, fica assim. Então eu pressiono Shift e está tudo bem. Então, deixe-me selecionar isso assim. Ok, exclua. Então eu pressiono Shift e um, dois. Isso significa. Então O, esse O. Isso é verdade. Nossa condição é verdadeira. E mesmo que ambas sejam verdadeiras, nossa condição também é verdadeira. A única situação em que nosso if não é executado é quando isso é falso, e isso também é falso. Só que nesse caso, nosso é falso e nosso eu não é executado nesta parte. Então, deixe-me remover isso. Acho que expliquei melhor dessa vez. Espero que você entenda. E a variável, deixe-me mostrar a variável. Você vê esse máximo, você vê essa média. Nós os definimos aqui para que possamos acessá-los globalmente. Antes disso, nós só os tínhamos aqui localmente. Então, fora disso, não podemos acessá-los. Por causa disso, eu adiciono isso na parte superior e removo o fio antes deles. Então, eles são globais agora, de qualquer forma, já que voltamos ao botão de ir e marcamos esta caixa, deixe-me adicionar mais uma coisa para torná-la mais bonita. Melhor. O que devemos fazer? Então, se você colocar o número certo, o gás correto, eu acho que é melhor, por exemplo, matar isso, matar isso, matar isso, ou até mesmo esconder esse botão, botão de apertar. Você sabe o que eu quero dizer? Faça com que seja um jogo melhor. Então, deixe-me ir ao código e encontrar meus botões. Então, aqui, nós e vamos. Então, aqui, eu apenas pressiono Inter e começo a escrever. Veja, nós temos isso para fazer. Por quê? Porque queremos continuar nosso botão de denúncia. Mas primeiro, criamos algumas linhas para melhorar nosso jogo nesta parte do vídeo e depois voltamos a este relatório. Então, é muito comum quando você quer morar separado e depois volta, você escreve para fazer. Então, nas suposições do layout de entrada, escreva ponto, ponto, qual visibilidade Ok, o que você quer fazer com essa visibilidade? Eu quero dizer que V é igual a V com V. Você se lembra que se você escrever em minúsculas, isso lhe dá erro Ok, o que você quer? Eu quero Deus, esconda isso. Então, quando você quer fazer isso? Quando minha resposta está correta? Então, quando essa resposta estiver correta. Aqui, esse eu é quando nossa resposta está correta. Deixe-me copiar a parte inteira. Então, aqui, pressione inter e control V e entre e feche isso Então, quando meu palpite estiver certo, coloque essa altura, mas ele não sabe. Adivinha. Por quê? Porque é a variável que temos aqui. Então, o que devo fazer? Deixe-me pensar sobre isso. Mas deixe-me ver. Não é minha suposição? É isso? Sim, acho que sim. Então essa é minha função. Então, qual é o meu palpite? Essa é minha função. Eu chamo minha função aqui. Então esse é o valor que eu passo para minha função. Então essa é a suposição. Edite, adivinhe, eu levo aquele texto, aquela música até o fim. Este texto é o valor da suposição do IDT. Esse é o meu palpite. Então, eu posso simplesmente controlar, ver a coisa toda e clicar duas vezes aqui, você vê clicando duas vezes aqui e controlando. Então, esse é o meu palpite quando meu palpite é igual a um número aleatório, então torne-o invisível. E como podemos entender, podemos simplesmente escrever isso aqui embaixo, mas deixe-me continuar assim. Você pode fazer isso das duas maneiras, mas eu só quero fazer isso aqui. Eu não estou indo tão rápido quanto no vídeo anterior. Deixe-me revisar isso. Este é meu objeto, Edit guess, aquele texto, significa o texto dentro do valor do texto desse objeto. Então, o que devo fazer com esse texto? Você deve torná-lo uma string, converter esse texto em uma string e, em seguida, torná-lo int. Por quê? Porque você pode converter para int e depois verificá-lo com um número aleatório. Por quê? Porque esse número aleatório é int. Portanto, você não pode verificar isso com uma string. Primeiro, você deve torná-lo int. De qualquer forma, de dentro para fora, se fizermos com que a visibilidade diminua primeiro, então o que mais? Basta pressionar o Control D dois, duplicar isso. Deixe-me fazer isso de novo para remover a linha. Clique aqui em qualquer lugar aqui, aqui, e pressione Control e D. Você tem dois desses. Por que eu tenho dois desses? Porque você vê uma suposição do layout de entrada. Esta é a nossa suposição do layout de entrada. A parte inteira. Também temos esse botão. Então, sabemos nosso nome BtNG ou não. Caso contrário, clique nele e veja TNG. Se você acabou de voltar e mudar esta parte para PT N. Você tem três PTN PTN vá e torne-o invisível. Deixe-me ver o que mais eu digo? Eu digo: Oi, isso, oi isso e esclareço isso, isso, isso. Deixe-me voltar e na próxima linha, eu tenho Edit. Eu tenho Editar, primeira entrada, primeiro valor, certo? Primeiro valor. Na maioria das vezes, eu escrevo informações. Está tudo bem. Eu não sou. Às vezes eu cometo erros. Dot, isso é o que aquele texto. Então, o que devo fazer com esse texto? Eu só digo dot C Killer. Limpe essa coisa. E às vezes, por engano, diminuo a linha como C sharp porque também escrevo em outros idiomas. Se você ver que eu faço isso, por exemplo, no vídeo anterior, está tudo bem. É meu erro. Basta remover isso porque no carrinho você não tem uma linha de permissões como essa. Basta removê-lo. De qualquer forma, o que eu tenho? Talvez seu texto seja nulo. Ok, talvez seja nulo. Então, ponto de interrogação. Se for nulo, tudo bem. Se não for nulo, então limpe isso. Então, isso é tudo? Não, claro que não. Basta fazer para Editar o primeiro valor, pressionar Control e clicar nele. Veja, Edite o primeiro valor. E o resto? Oh, você tem o segundo número, o segundo e adivinha. Então, temos mais dois. Deixe-me voltar e clicar aqui e pressionar Control D. É tão fácil. Então, mais um Controle D. Então eu tenho duas cópias disso. Então, eu apenas altero essa parte, seleciono essa parte, removo e controlo o valor de um segundo de espaço. E, claro, selecione essa parte, remova esse espaço de controle. Eu também tenho a suposição. Então, limpe todos eles. Veja, eu posso simplesmente ir até eles e clicar duas vezes no nome e no Controle C, copiar e colar. Mas eu quero te mostrar maneiras diferentes, por exemplo, com esses controladores espaciais. Antes de continuar com isso, deixe-me executar o aplicativo para ver o que acabou de acontecer. Meu aplicativo é executado e novamente Ok, meu primeiro número é, por exemplo, 15 e o segundo número é 20 de início. Meu palpite é 25, está fora do alcance. Vá. Deixe-me ver que seu número está fora do alcance, é claro. E se eu disser dois Go. Ainda está fora do alcance. Olha, se eu disser 16, maior que 17, maior que 18, maior do que 19, ainda maior do que cerca de 20. Seu palpite é verdadeiro e você vê onde está o Gb dez? Desapareceu. Onde está a suposição? Desapareceu. Por quê? Porque escrevemos PTNO e adivinhamos o layout de entrada. Quando estamos certos e nosso palpite é verdadeiro, eles não devem mais estar visíveis. E, claro, você vê esta caixa e esta caixa está limpa agora. E se eu escrever 15 e 55 e disser começar, seu palpite está vazio. Exatamente por causa disso, eu também esclareço isso. Então, eu só quero que isso pareça melhor. E, como mencionei, não é certo escrever mais se você puder fazer isso com aquele outro eu. Então, é melhor escrever esses códigos aqui embaixo, não aqui, mas apenas aqui. Para mostrar, você também pode escrevê-lo aqui. Mas, como eu disse, é mais profissional escrever isso junto com o outro eu. E mesmo que possamos ser ainda mais perfeitos, é melhor criar uma função para essa coisa matadora Assassino, assassino, assassino, invisível, invisível, livre de tudo isso e algo como redefinir todos esses dados. Então é melhor até mesmo ter uma função para isso. De qualquer forma, não fazemos mais isso e vamos continuar nosso botão de denúncia. Então, só queremos continuar com isso. Nosso problema, como acabamos de falar, é que quando salvamos nosso número, nossa suposição em nosso relatório, última suposição vai para esse relatório. Deixe-me te mostrar. Deixe-me continuar e mostrar qual é o problema. Este é o relatório, e esse relatório é um intento. Eu simplesmente não consigo pegar um número. Portanto, temos esse relatório e queremos que essa visualização de texto seja duplicada Então, apenas esse controle C, pressione inter e control Simplesmente removo essa etiqueta do ID. Então, eu tenho outra visualização de texto, mas elas estão uma em cima da outra. Então, deixe-me mudar essa parte de cima para cima se tivermos de cima para cima, remover essa parte de cima para cima e dizer de cima para baixo do quê. Então, da parte superior, basta conectar-se à parte inferior para inserir esse ID. E, claro, esse, por que é tão difícil esse, esse. Assim. E lembre-se, se eu não escrever essa parte, por exemplo, deixe-me selecionar esse Controle X. Se eu não escrever essa parte, está errado Eu deveria escrever essa parte de identificação antes disso, desse jeito e desse jeito. E especialmente no sinal de Pallas, Idah, a coisa toda É a regra, é a lei. Então, deixe-me fazer com que seja compatível com o pai. E eu acho que é o suficiente. Deixe-me continuar essa discórdia no próximo vídeo. Portanto, nosso vídeo não ficou muito longo. 65. Dia 10: relatório Button, parte 3: Botão de relatório, parte três. Vamos continuar. Ok, salvamos nossa estimativa editada nossa variável de relatório e dizemos que basta um número, não uma série de suposições Então, deixe-me remover isso para continuar esta parte do relatório quando o relatório BTN clicar aqui, configurado para clicar no ouvinte Então eu digo que o texto pontual do relatório TXT é igual ao que já salvamos neste relatório, você vê esse relatório, já criamos e aqui, fornecemos dados que os colocamos dentro do texto pontilhado do relatório, mas Este relatório é um número, está dentro, então eu deveria alterá-lo porque esse texto é uma string. Eu apenas pressiono essa corda. Como eu disse, se eu por engano fechar as linhas como ChR, basta preencher isso Por quê? Porque às vezes, porque eu também escrevo programas de CSR, escrevo isso por engano Deixe-me executar o aplicativo e ver o problema. E depois voltei para consertar isso. Então, deixe-me minimizar isso, ir para o jogo, dizer 15-20 e começar, e meu palpite é: é 15 Deixe-me descer, vá. Sim, é verdade. Ok, eu posso te mostrar. Está tudo bem Vamos começar de novo. Às vezes acontece, são 15, na verdade são 15. Ok. Deixe-me começar de novo e minimizar isso. Meu palpite é, novamente, 15. Vá. Ok, graças a Deus. 16. Ok, meu palpite acabou. Então, 15 e 16, eu insiro dois números. Desta vez é 16. Então, deixe-me ver o relatório, clique aqui e meu relatório é 16. Mas espere um minuto. Acabei de inserir 15 e depois 16. Eu deveria ver dois números dentro disso. Mas eu só vejo um número. O que devo fazer? Então esse é o nosso problema. Porque é meu último palpite. Então, na verdade, é o resultado porque meu último palpite é o resultado. Então, deixe-me parar com isso e minimizar isso. Então, meu problema é que este relatório só pode conter um valor ao mesmo tempo. Mesmo isso ou mesmo isso todos eles podem ter apenas um valor? Qual é a solução. A solução é matriz. Array é uma série da mesma variável. Portanto, ele pode ter muitos espaços. Deixe-me dizer que imagine essa variável var como uma caixa, array é uma caixa séria. Por exemplo, imagine que se sua matriz tem dez slots, você pode colocar dez números diferentes dentro dela e não fazer nada um com o outro. Não é só um número assim. Muitos valores diferentes. Onde podemos usar? Por exemplo, aqui, queremos muitos valores diferentes para o relatório. O usuário faz dez suposições. Queremos todos os dez números dessa série. Ou, por exemplo, em uma sala de aula, você tem dez alunos e tem o nome da variável. Você não quer um nome. Você tem o nome de cinco, dez, 20 alunos. E você quer todos eles, não apenas um deles. Você usa matriz e muitos, muitos outros lugares. Por exemplo, em tabelas, você tem muitos slots e, dentro dessas mesas, você usa um. Slot variável para cada valor da tabela. Por exemplo, se você tem dez linhas, você usa dez slots diferentes para isso. Antes de mudar para matriz, deixe-me dar mais algumas coisas. Primeiro, mais um exemplo, por exemplo, quando você compra algumas coisas em uma loja e recebe um recibo, também podemos usar array nesse caso As matrizes podem usar muitos itens que você compra em uma variável E então você pode somar cada um deles para ter o preço total e muitos outros exemplos e mais uma coisa, eu esqueci Dentro dessa visualização de texto, veja, eu tenho esse texto. Eu não deveria ter esse texto aqui. Se você clicar em denunciar, poderá ver esse relatório. Então, o que devo fazer para ver o quão grande ou pequeno meu texto pode ser? Eu deveria trocá-lo por ferramentas. Eu simplesmente esqueci isso e nós mudamos isso. Então, quando eu executo meu aplicativo, não vejo esse texto, mas aqui, eu posso ver o tamanho. Isso é um pouco importante e o torna muito mais agradável. E me ajuda a encontrá-lo. Imagine que estou em outro lugar e quero clicar nele. Se isso não tiver nenhum texto, é mais difícil encontrá-lo. Mas quando tem um texto, eu simplesmente clico nele e ele seleciona aqui e eu posso alterá-lo Deixe-me te mostrar isso também. Selecione esse controle X. Veja, eu não o tenho Desapareceu. Mas se você tem isso, não consegue encontrá-lo. Agora, mesmo se você estiver em outro lugar, poderá encontrá-lo com mais facilidade. Então, vamos voltar à nossa matriz. Nós temos outra maneira. O que? Podemos fazer muitos relatórios. Tipo o quê? Controle DD, por exemplo, relatório, relatório dois, relatório três. Mas há um problema. E se meu usuário receber o número 50? Você pode imaginar que adicionamos 50 relatórios e, dentro do nosso código, damos a esses relatórios, um por um, seus valores. Não, não podemos fazer isso. Claro, são apenas três. Quero dizer, deixe-me mostrar o controle, d d d d d. Muitos mais. Você não pode fazer isso. Então, basta remover isso. Isso não está bem. Em vez disso, usamos RA. Este é um exemplo melhor depois. Mesmo naquela loja, nós apenas escrevemos um programa para isso. Quando o cliente traz 20 itens e você quer adicioná-los, você não pode criar 20 valores diferentes e 20 variáveis diferentes. Por quê? Porque e se o cliente trouxer 50 itens na cesta? O que você quer fazer então? Você não pode. Deixe-me remover isso e dizer aqui que este relatório é, o que é? Uma lista de uma lista de eu quero isso. Deixe-me te mostrar novamente, esclareça isso. Se você pressionar Inter e tiver algo assim, se você estiver aqui, pressione espaço de controle, você não tem nada Nenhum deles é útil. Acabei de voltar um personagem aqui. Aqui, pressione o espaço de controle. Ele oferece duas opções. Você quer o segundo. Por quê? Porque eu quero dizer que está com Big I, como eu disse, se você escrever um pequeno I, você tem erro, I maiúsculo, de qualquer maneira. Deixe-me apenas comentar isso e, no próximo slide, escrever assim. Um porto. Qual é o tipo? Em vez de dizer igual a, qual é o tipo? Veja aqui, dizemos que é igual a isso. Mas não, não, espere. Nós damos o tipo aqui. Nós dizemos, sim. Eu só quero escrever isso para você. Lista. Lista do quê? Lista de barras de ouro, uma string ou fornece o valor. Este relatório é uma lista de matriz de int porque é Você vê que pode ter muitas coisas diferentes. Por exemplo, se eu remover isso e disser apenas uma sequência de caracteres, você pode ter várias sequências de caracteres diferentes dentro do seu relatório. Mas eu quero números inteiros. E lembre-se, essas são dicas importantes. Quando você diz que é int, todas as matrizes, espaços, todas essas seções, caixas ou o que você quiser dizer e aprender com isso, todas elas são do mesmo tipo Então, todos eles no momento são int. Você pode colocar uma corda dentro deles. Por quê? Porque todas as seções e partes do relatório estão em letras e podem ter somente os números, nem mesmo o decimal Todos eles são números inteiros. Então, temos um erro. O que devemos fazer? Devemos dar esse valor. Devemos inicializar isso. Ou deixe-me criar isso pela primeira vez. Não é B null. Eu digo iguais. Deixe-me escrever aqui é igual, eu tenho uma lista de matrizes de setas, e assim O que eu tenho? Eu tenho um erro. O que devo fazer? Deixe-me entrar aqui e no espaço. Deixe-me te mostrar. Você não tem erro agora, mas se você esqueceu de pressionar espaço aqui, seu IDE considera que esses dois são um Esses dois estão juntos e não pensam nisso como um sinal de igualdade, mas os formam juntos. Para isso, basta pressionar este espaço. Para dizer que está separado, separe isso com essa parte. Eles são separados. Se você esqueceu esse espaço, isso acontece às vezes, você tem um erro De qualquer forma, essa é outra maneira criar esse relatório como uma matriz. Mas a forma mais comum é assim, veja, é mais curta e mais simples. Eu tenho esse relatório. O que é isso? Lista de matrizes de int. Eu posso criar isso com um código muito, muito longo, ainda mais longo do que isso, tudo bem, mas por que eu deveria? Eu faço isso com um código mais simples. E como eu deveria lhe contar algumas coisas diferentes, tento dar mais exemplos. Mesmo assim, você se lembra dessas ferramentas. Eu tento te dar o máximo que posso do meu conhecimento. Para que você possa aprender da melhor maneira que eu puder. Espero que você não esteja entediado porque tento te ensinar muitas dicas e coisas diferentes De qualquer forma, deixe-me te mostrar isso. Posso comentar isso de novo, controlar aqui, remover essa parte e dizer: Não, eu não quero dar nada a isso. Então, o que fazemos, eu quero dar isso como nulo, mas você não pode porque não pode ter nulo Está tudo bem Pode ter. Portanto, ele pode ser nulo, e eu deveria fornecer esse valor no futuro. Eu só quero te mostrar que isso também pode funcionar. E aqui, se eu remover esse espaço, ele me dá y porque não temos mais do que um ponto de interrogação. Você se lembra que temos maiores e iguais. Mas como não temos um bom ponto de interrogação, não se confunde. De qualquer forma, o tempo todo, é melhor que você tenha seu espaço. Assim, até mesmo o IDE pode entender, você não se confunde. Então, quando eu quero dar um valor a isso, o que devo fazer? Simplesmente aqui ou aqui ou aqui, eu deveria dizer, ok, por exemplo, aqui, eu apenas pressiono inter aqui e escrevo o relatório, é igual à lista de matrizes e damos a isso um valor, não é Não tem nenhum número dentro, mas não é nulo E mais um exemplo, se eu disser int, é grave, por quê? Porque eu digo que já está pronto. Então eu não preciso dizer isso de novo. Então, eu não preciso usar esse int. De qualquer forma, eu simplesmente removo essa parte e removo as entradas extras e digo, antes que eu esqueça, o A A, pequeno A. Por quê? Porque diferencia maiúsculas de minúsculas. Quando eu quero dar a isso um valor como esse, lista de matrizes está com um pequeno A. Mas se eu quiser dizer matrizes, é com A. Novamente, matrizes, A, lista A, uma lista de pequenos A. Se você, por exemplo, aqui, escrever um pequeno A, escrever um pequeno A, você não tem Portanto, diferencia maiúsculas de minúsculas e não se esqueça dessas coisas. Acabei de comentar isso, uma lista incomum de int. Acho que é mais fácil. Podemos usar a outra coisa, mas acho que é mais fácil e melhor. Deixe-me continuar com isso no próximo vídeo para que não seja muito longo, não fique muito longo. 66. Dia 10: relatório Button, parte 4: Botão de relatório, parte quatro. Vamos continuar. Então, temos um erro. Qual é o nosso erro? Veja, acabamos de criar nossa matriz e temos um erro. Este relatório é uma lista de matriz de int. Mas temos um erro. Qual é o nosso erro? Podemos colocar o valor dentro desse relatório dessa forma. Então, o que devemos fazer? Podemos dizer, primeiro defina esse Controle X, corte isso, remova isso, remova isso. Está bem? Agora, Dr. Adicione pontos para adicionar o que, adicione isso. Esse valor adiciona isso com esse cartão a essa matriz. Dê um novo lugar dessa matriz a esse valor. Podemos usar essa arte quando temos uma matriz, então eu tenho essas matrizes Então eu posso usar isso em. Deixe-me verificar para ter certeza. Eu tenho alguma matriz que não seja? Sim, quero dizer, eu tenho o máximo. Deixe-me usar esse meio. Controle C, eu escrevo isso significa. Por exemplo, mesmo aqui, pontos médios em Oh, eu não tenho nenhum em Você vê? Por quê? Porque isso não é uma matriz ou mesmo aqui lado a lado. Quer dizer que eu quero escrever assim em, não em. Por quê? Porque eu quero dizer uma variedade. Eu deveria dar o valor médio assim. Média é igual a, mas não em. Remova isso e coloque mais. Deixe-me rodar o jogo. Execute para minimizar isso e clique em jogo. Eu quero, por exemplo, de 15 a 20 e, no início, adivinhe 15, vá. Ótimo cabelo, 19 anos, pronto. Menos 18, vá. Menos cerca de 17. Vá. Verdadeiro. Agora, mostre-me o relatório. Deixe-me ampliar isso. Você vê que tem essa matriz 151-918-7017. Eu tenho 15 1918 17. Eu não tenho apenas o último número. Eu tenho o todo. Então, mesmo que eu insira 100 números diferentes, posso ter meu histórico e meu relatório até agora, funcionando assim. Não é tão bonito, certo? Veja, acabamos de dizer relatório Tix, texto com pontos é igual Relate a radiestesia. Então, toda a variável, toda a matriz, colocamos isso dentro do relatório Tiki Claro, não é legal e não é a melhor maneira de fazer isso, mas funciona. E eu não o alterei para que você possa ver o que está dentro da sua matriz. Obviamente, em vídeos futuros, nós o tornaremos em papel. Não se preocupe Apenas se concentre e aprenda todas essas coisas. Essas são coisas muito importantes. Não somos muito iniciantes, mas ainda assim eles são muito importantes Como nosso jogo pode mostrar o relatório, mesmo assim, acho que é o suficiente para este vídeo e acho que guardamos dicas muito importantes. Por exemplo, uma das coisas mais importantes é que devemos inicializar nossa variável Essa matriz deve ser inicializada. Por exemplo, deixe-me fazer isso mais uma vez. Se eu disser, deixe-me dizer A. O que é? Eu organizo uma lista de números inteiros Sim, e pressione N, pressione inter. Eu digo um ponto em, por exemplo, quatro, e se eu disser, qual é o erro, propriedade deve ser inicializada Exatamente por causa dessas coisas, você vê neste exemplo, report array list, int, inicializamos assim : é igual Ou aqui, dizemos que nosso relatório é igual à lista de matrizes de Int. Em todos eles, nós o inicializamos. E se quisermos dizer que é nulo, devemos inicializá-lo Então, falamos sobre essa inicialização de maneiras diferentes, e você já conhece esse nulo Então, acho que agora você entende que se dissermos null, então, mais tarde, devemos inicializar e fazer com que tenha um lugar na memória RAM do computador ou do telefone O telefone é uma espécie de computador, é um computador. De qualquer forma, no dispositivo AM. Eu deveria ter um espaço para si mesmo inicializado. É para ter um espaço no dispositivo AM para essa variável e alocar espaço para ela L, o que acontece se eu pressionar inter e disser: A é igual? Oh, eu digo, em um lugar global, deixe-me cortar isso. Eu deveria movê-lo para, por exemplo, aqui, entre, e aqui dentro está criado Esse é o lugar para criar uma variável para esse tipo de teste. De qualquer forma, uma lista de matrizes, então se eu não escrever isso, eu só tenho esse pequeno erro agora. variável A deve ser inicializada, é claro, conforme falamos, e então eu digo, e então eu digo, é igual à lista de matrizes de e, em seguida, meu erro desaparece Então eu apenas inicializo. Por que foi corrigido porque aloca esse A um lugar no dispositivo RAMs Não, desculpe, na RAM dos dispositivos. Sim. Na RAM do dispositivo. E se fizermos isso, essa parte, Controle X e removermos isso aqui, controle, nós apenas fazemos isso aqui. Diz, por favor, me diga o que essa variável digita? Eu digo, é inteiro. Agora, está corrigido. É como se a maneira como fazemos algo igual a uma lista de int e você vê a diferença de cores TA é branco. Não é permitido inicializar. Eles são globais e têm cores diferentes. Você clica nele e clica aqui, as cores mudam. Às vezes eu tenho esse tipo de caixa que você vê, clique em clicar. Às vezes, essas coisas acontecem. Pequenos erros, pequenos bugs. Está tudo bem. O Android Studio atualiza e muitas dessas coisas são corrigidas sozinhas. Talvez queira saber se você pode alterar todas essas cores na configuração do Android Studio, mas não mude muitas coisas ou tente não alterar nada na configuração até aprender um pouco mais. E se você quiser mudar, basta mudar o que você precisa. Ao aprender mais, você pode torná-lo mais pessoal só para melhorá-lo. Mas agora, você pode fazer alguma coisa mudar e ela não funcionar tão bem. Você pode quebrá-lo. Eu não deveria dizer que quebrei. Você não deve alterá-lo muito, a menos que aprenda a configuração deste estúdio Android. Posso adicionar alguma outra coisa? Sim, claro, Controle, por exemplo, às seis, acrescento duas coisas. E até posso dizer que é Val? Isso me dá um erro Val. Você vê? Está tudo bem. Sem erro. Acho que digo ainda mais do que suficiente e deixe-me deletar isso e basta. É o suficiente para este vídeo.