Escolar Documentos
Profissional Documentos
Cultura Documentos
Dispositivos Móveis
Conteúdo
• Menus
• NavigationView
• Introdução ao processamento
de Bancos de Dados em
Android
A forma mais simples de editar um menu será utilizando o assistente visual. Selecione com duplo click o
arquivo .xml do menu desejado e selecione a aba Design. Poderá arrastar novos itens para o menu,
editar suas propriedades etc. É importante adicionar atributos id para atender eventos para esses itens.
strings.xml
• Para a criação do menu (quando for aberta uma tela do app), será necessário
adicionar o método a seguir na classe da Activity (este método não é inserido
automaticamente, temos que digitar).
• Observe que onCreateOptionsMenu se comporta como um evento. O
assistente do Android Studio poderia ajudar na criação da estrutura básica
deste método.
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the
// action bar if it is present:
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
Resultado: app com um menu
• Executamos o programa e abrimos o menu da tela:
Criando o menu no Java (via mais difícil: pode pular estes dois slides)
//Opções do sub-menu:
public static final int PESQUISAR = 5;
public static final int LIMPAR = 6;
public static final int SAIR = 7;
public static final int OUTROS = 8;
if (id == R.id.action_settings) {
return true; // opção atendida; não faz nada neste caso
}
if (id == R.id.sobre){ // nesta opção de menu abrimos outra tela do app
Intent i = new Intent(getApplicationContext(),Main2Activity.class);
startActivity(i);
}
if (id == R.id.sair){ // nesta opção de menu terminamos o app
finish();
}
return super.onOptionsItemSelected(item);
}
Comentários (1)
• Em um programa com várias telas, cada uma poderá ter seu próprio menu e
submenus.
/*
teste também com:
android:layout_height="50dp"
android:background="@drawable/backgroundegradeazul2"
*/
<android.support.v7.widget.Toolbar
android:id="@+id/my_toolbar"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="@android:color/holo_blue_light"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
...
Exemplo3a - personalizar a ActionBar
<android.widget.Toolbar
android:id="@+id/my_toolbar" em versões atuais de Android
android:layout_width="match_parent"
android:layout_height="70dp"
android:background="@drawable/barrabackground"
tools:ignore="MissingConstraints" />
Utilizando NavigationView
Em NavigationDrawerActivity1.zip e
Exemplo4NavigationActivity.zip
encontrará dois exemplos completos.
Veja algumas orientações nos
próximos slides.
Existe um template pronto, Navigation Drawer Activity, para criar um projeto com este
tipo de objeto para navegação. O exemplo que mostramos nestes primeiros slides se
encontra no arquivo NavigationDrawerActivity1.zip. Veja mais sobre templates em
https://developer.android.com/studio/projects/templates.
Utilizando NavigationView
O botão das três linhas horizontais mostrará as três opções construídas automaticamente.
Utilizando NavigationView
}
Para atender o evento de click de cada opção, adicionemos:
public boolean onNavigationItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.nav_gallery) {
Toast.makeText(getApplicationContext(),
"Opção Gallery atendida", Toast.LENGTH_LONG).show();
} else if (id == R.id.nav_home) {
Toast.makeText(getApplicationContext(),
"Opção Home atendida", Toast.LENGTH_LONG).show();
} else if (id == R.id.nav_slideshow) {
finish();
}
DrawerLayout drawer = findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
Escreva este código para atender as diferentes opções do menu de navegação. Trata-se do
método public boolean onNavigationItemSelected, que deverá ficar na classe MainActivity,
como mostrado acima. Também, elimine qualquer outro método gerado neste template.
Os import na classe MainActivity agora simplificamos:
import android.os.Bundle;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.android.material.navigation.NavigationView;
import androidx.appcompat.app.ActionBarDrawerToggle;
import androidx.core.view.GravityCompat;
import androidx.drawerlayout.widget.DrawerLayout;
import androidx.appcompat.app.AppCompatActivity;
import com.example.testenavigationview.databinding.ActivityMainBinding;
Depois, podemos configurar as opções do menu, nos arquivos
menu/activity_main_drawer.xml e layout/nav_header_main.xml
Eliminemos tudo o relacionado com os "fragmentos"
Colocaremos, por exemplo, objetos TextView, botões, campos EditText etc. na tela em
content_main.xml. Também, como já não vamos utilizar fragments, apagaremos do projeto
todos os arquivos relacionados.
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Exemplo de NavigationView"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
http://developer.android.com/intl/pt-br/training/basics/data-storage/databases.html
Processando Bancos de Dados em Android (2)
• Cada aplicação poderá criar um ou mais bancos de dados. Um banco de
dados só poderá ser acessado pela aplicação que o criou (critério de
segurança).
• Os bancos de dados ficam localizados na pasta databases do diretório da
aplicação, o caminho será: /data/data/nome_do_pacote/databases/
• Um banco de dados pode ser criado em duas formas principais:
• A primeira seria utilizando a própria API do Android, que, após a criação
do banco, permite executar comandos SQL para criar tabelas, inserir,
eliminar, alterar e consultar dados.
• A segunda forma seria através de alguma IDE (software separado) do
SQLite. Podemos utilizar estas ferramentas para criar o banco de dados,
mas depois precisamos importar para o projeto o banco que foi criado.
• É recomendada a criação do banco de dados através da própria aplicação.
DB Browser: http://sqlitebrowser.org/
SQLite expert: http://www.sqliteexpert.com/
SQLite Studio: http://sqlitestudio.pl/
Processando Bancos de Dados em Android (3)
• Podemos executar comandos SQL para alteração do Banco de Dados, como INSERT
INTO, DELETE, UPDATE, CREATE TABLE etc., utilizando o método execSQL ou,
preferivelmente, métodos específicos: insert, delete, update, da classe
SQLiteDatabase.
Mas são permitidos alguns sinônimos (varchar, float, int), por exemplo:
HotelHelper(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(TABLE_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) {
}
}
Para apagar um banco de dados durante o desenvolvimento.
Em versões mais recentes do Android Studio:
Os exemplos desta aula
• Exemplo1. Este aplicativo simples utiliza um menu de opções. Dentre das
opções, uma permite navegar para uma segunda tela.
• Exemplo4. Este exemplo mostra uma forma de personalizar a Action Bar com a
biblioteca de suporte mais atual AndroidX.
Em Exemplo2.zip →
Bibliografia sugerida
• ANDROID. Android Developers. Disponível em http://developer.android.com.
• LECHETA, RICARDO R. Google Android, Aprenda a criar aplicações para dispositivos
móveis com o Android SDK. São Paulo: Novatec, 2010.
• MEDNIEKS, Z. et. al. Desenvolvimento de Aplicações Android. São Paulo: Novatec,
2009.
• LEE, Wei-Meng. Introdução ao Desenvolvimento de Aplicativos para o Android. Rio
de Janeiro: Editora Ciência Moderna, 2011.
• https://developer.android.com/guide/topics/ui/menus?hl=pt-br
• https://developer.android.com/training/appbar/setting-up.html
• https://developer.android.com/guide/topics/resources/menu-resource.html
• https://developer.android.com/reference/android/support/design/widget/Navigati
onView
• https://ricardolecheta.com.br/?p=699