Lar Finanças Pessoais Com Java: algumas observações sobre Classes do Android - manequins

Com Java: algumas observações sobre Classes do Android - manequins

Índice:

Vídeo: Como aprender a programar 2024

Vídeo: Como aprender a programar 2024
Anonim

Quando você inicia um novo projeto Java, o Android Studio oferece para criar uma atividade para seu projeto. O Android Studio oferece diversos tipos de atividades, como uma atividade básica, uma atividade vazia, uma atividade de login e assim por diante. Se você pedir uma atividade vazia, você obtém esse código:

pacote com. seu código. a10_11;

importar o Android. Apoio, suporte. v7. aplicativo. AppCompatActivity;

importar o Android. os. Agrupar;

classe pública MainActivity estende AppCompatActivity {

@Override

protected void onCreate (Bundle savedInstanceState) {

super. onCreate (savedInstanceState);

setContentView (layout R. activity_main);

}

}

O código declara uma classe chamada MainActivity . Este nome MainActivity não faz parte da biblioteca da API do Android. É um nome que você faz quando cria um novo projeto Android. (Na verdade, o Android Studio compõe o nome. Você aceita o nome ou alterá-lo para outro nome quando seguir as etapas para criar um novo projeto.)

A classe MainActivity estende uma classe que pertence para a biblioteca SDK do Android, ou seja, a classe AppCompatActivity . Em outras palavras, o objeto MainActivity é um objeto AppCompatActivity . O MainActivity objeto tem todos os direitos e responsabilidades que qualquer instância AppCompatActivity tenha. Por exemplo, o MainActivity possui um método onCreate , que substitui.

Na verdade, a classe MainActivity herda cerca de 460 linhas de código da classe AppCompatActivity do Android, que herda cerca de 1 000 linhas do Android FragmentActivity , que herda cerca de 6, 700 linhas da classe de atividade do Android. Os métodos herdados incluem aqueles como getCallingActivity , getCallingPackage , getParent , getTitle , getTitleColor , getWindow , onBackPressed , onKeyDown , onKeyLongPress , onLowMemory , onMenuItemSelected , setTitle <, setTitleColor , startActivity , concluir e muitos, muitos outros. Você herda toda essa funcionalidade com duas palavras simples: estende AppCompatActivity . Na terminologia das relações familiares, sua classe

MainActivity é descendente da classe Actividade do Android. Sua classe MainActivity é um tipo de Atividade . Esta imagem, tirada diretamente da documentação on-line do Android, resume esta informação sobre a classe

AppCompatActivity . Uma árvore de família AppCompatActivity.

Marque a página para acesso fácil à documentação da biblioteca API do Android.

Além de ser uma subclasse, a classe

AppCompatActivity implementa um grupo de interfaces, incluindo a interface AppCompatCallback , a interface TaskStackBuilder e outras. Você não precisa se lembrar disso. Se você precisar saber, você pode procurá-lo na página de documentação do Android. Super palavra-chave de Java, revisitada

A palavra

super representa o construtor da superclasse. O código diferente usou a palavra-chave super de maneiras diferentes. Sim, super sempre tem algo a ver com a classe pai de uma classe. Mas, não, super nem sempre se refere ao construtor da classe pai. Em um método

onCreate , a chamada super. onCreate (savedInstanceState) envia savedInstanceState ao método onCreate da classe pai. A classe pai é a classe AppCompatActivity . Então, Java chama o método AppCompatActivit y da classe emCreate . O método

AppCompatActivity classe onCreat e contém sua própria chamada para super. onCreate (saveInstanceState) . O AppCompatActivity classe da classe é a classe FragmentActivity . Então, Java passa savedInstanceState para o método FragmentActivity classe onCreate . E assim por diante. Não é até chegar à

Actividade - o M ainActivity bisavô da classe - que o código usa diretamente a variável saveInstanceState . A partir desta informação saveInstanceState , o código coloca a atividade de volta como era antes que o sistema a destruísse. Casting, novamente

Quando você chama

findViewById , o Java não sabe qual o tipo de exibição que encontrará. O método FindViewById sempre retorna uma instância View , mas muitas classes do Android estendem a classe View . Por exemplo, as classes Botão , TextView , ImageView , CheckBox , Cronômetro e ClassificaçãoBar todos estendem a classe Ver do Android. Se você digitar o seguinte código: // NÃO FAÇA ESTE! !

TextView textView;

textView = findViewById (R. Id. TextView);

Java solta um rugido ressonante e ressentido: "Como você se atreve a assumir que o objeto retornado por uma chamada para

findViewById refere-se a uma instância da classe TextView ! "(Na verdade, o Java exibe silenciosamente e mecanicamente uma mensagem de erro incompatibilidade de tipos no editor do Android Studio.) Limitar

significa tentar atribuir um valor longo a um > int valor. Um valor longo tem 64 bits e um valor int tem apenas 32 bits. Portanto, a tentativa de estreitamento falha. No código que você encontra aqui, a chamada findViewById incorreta é outra tentativa de redução - atribuindo o valor Exibir retornado por uma chamada de método para uma variável TextView .A classe TextView é uma subclasse da classe Ver , portanto a atribuição falha miseravelmente. apaziguar os deuses de Java, adicionando um operador de elenco ao código. Você diz ao Java que converta o que quer sair da chamada do método findViewById

para um objeto TextView . textView = (TextView)

findViewById (R. Id. TextView1); Enquanto você está digitando o código, o Java humora você e diz: "O seu operador de seleção mostra que você está ciente da diferença entre um TextView

e qualquer Vista anterior . Eu farei o meu melhor para interpretar o objeto Exibir que eu encontro no tempo de execução como um objeto TextView . "(Na verdade, enquanto você está digitando o código, Java não diz nada. O fato de Java não exibir mensagens de erro quando você usa esse truque de elenco é um bom sinal. O recurso de lançamento de Java economiza o dia!) Casting impede que você veja uma mensagem de erro enquanto desenvolve seu código. Desta forma, lançar é uma característica bastante útil do Java. Mas o lançamento não pode salvá-lo se seu código contiver erros de tempo de execução. Quando você digita textView = (TextView) findViewById (R. Id. TextView1);

você verifica se o nome

textView

representa um widget TextView . Quando o aplicativo é executado, Java pega o R. identidade. Widget textView a partir do activity_main. xml , e tudo funciona bem. Mas às vezes você pode esquecer de verificar o seu R. java nomes contra os componentes no arquivo XML. Uma chamada para findViewById esconde surpreendentemente um componente Botão quando o seu elenco diz a Java que espera um widget TextView . Quando isso acontece, o Java chokes no operador de transmissão e seu aplicativo falha durante sua execução. De volta ao quadro de desenho!

Com Java: algumas observações sobre Classes do Android - manequins

Escolha dos editores

Acalma suas emoções ao praticar Mindfulness - dummies

Acalma suas emoções ao praticar Mindfulness - dummies

Aqui, você descobre a maneira consciente de gerenciar as emoções - as etapas para tome quando estiver sentindo baixo, excessivamente irritado ou desconfortavelmente ansioso. As emoções positivas podem ser um sentimento maravilhoso. A alegria, a alegria, a emoção e a felicidade são perfeitas. Mas como você pode lidar com as chamadas emoções negativas? Use a atenção para a saúde emocional A atenção plena está se tornando ...

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Como começar o seu dia de trabalho com meditação Mindfulness - dummies

Você pode encontrar a meditação mindfulness é uma ótima maneira de Comece o seu dia de trabalho. Quando chegar ao trabalho pela manhã, talvez já esteja estressado. Depois de uma agitada hora ou duas preparando as crianças para a escola ou regatear com seu parceiro ou lidar com alguma emergência em casa, seguido de ...

Os melhores sites Mindfulness - dummies

Os melhores sites Mindfulness - dummies

, Independentemente de você morar no Reino Unido ou em outro lugar, se você procurar "mindfulness" 'on-line, você literalmente obterá milhões de resultados. Como você pode dizer o trigo da palha? Aqui estão alguns sites que você achará útil. Atento. Este recurso maravilhoso tem muitos conteúdos de alta qualidade de professores excelentes de atenção plena. O ...

Escolha dos editores

HDR Solução de problemas: Nada está funcionando - manequins

HDR Solução de problemas: Nada está funcionando - manequins

Quando você se depara com uma situação com suas fotografias de alcance dinâmico elevado e parece que nada que você está fazendo está funcionando - as configurações não parecem boas, a imagem parece errada, os efeitos são ruins - relaxe e faça uma pausa. A imagem está lhe dizendo algo. Que algo às vezes é relacionado a forçar ...

HDR Resolução de problemas: falta de imaginação - dummies

HDR Resolução de problemas: falta de imaginação - dummies

A imaginação é uma coisa poderosa ao preparar imagens HDR, fato que é tornou-se mais óbvio quando você vê o resultado de não usá-lo versus usá-lo. A imagem superior desta figura é uma imagem HDR de um diner local durante a "hora dourada" - naquele horário atrasado (ou manhã) quando ...

HDR Solução de problemas: Sharpening - dummies

HDR Solução de problemas: Sharpening - dummies

Se você ficar apanhado na perfeição, você está preparado para aumentar seu HDR imagens. Os fotógrafos às vezes estão obcecados com a nitidez em suas fotos. Eles querem que tudo seja pixelly perfeitamente afiado do nariz da câmera até o infinito, independentemente da lente, abertura, ISO ou velocidade do obturador que eles usem. Esta figura mostra os resultados ...

Escolha dos editores

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Cisco Rede: Mostrar comando de versão em um Switch - dummies

Em qualquer componente de rede da Cisco, o show O comando de versão é aplicável a qualquer hardware usando o Sistema Operacional Cisco IET (Internetwork Operating System), incluindo switches. O comando show version mostra informações ligeiramente diferentes, de acordo com o tipo de dispositivo em que você usa. Veja a saída do comando show version em um switch e ...

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Cisco Rede: Modo de operação EXEC privilegiado - manequins

Você precisa usar o modo EXEC privilegiado se quiser realmente tem acesso de atualização a um sistema de rede Cisco,. Para entrar neste modo no modo EXEC do usuário, emita o comando enable, que solicita uma senha, se configurado. Como o nome do modo sugere, este modo tem privilégios extras para permitir ...

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Cisco Rede: Configuração de Senha de Shell Seguro (SSH) - manequins

Shell seguro (SSH) é um protocolo de rede para seus dispositivos Cisco, que é mais seguro do que o Telenet. Definir uma senha segura é um requisito de configuração para este protocolo. Para configurar o acesso a um switch Cisco para SSH, você precisará ter uma conta de usuário criada em sua opção. O exemplo supõe que você tenha ...