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.