142
Android Desenvolvimento sábado, 27 de outubro de 12

Aula android 03

Embed Size (px)

DESCRIPTION

Aula 3 de android

Citation preview

Page 1: Aula android 03

AndroidDesenvolvimento

sábado, 27 de outubro de 12

Page 3: Aula android 03

Banco de dados

Google Maps

SMS

Review

sábado, 27 de outubro de 12

Page 4: Aula android 03

Banco de dados

Google Maps

SMS

Review

sábado, 27 de outubro de 12

Page 5: Aula android 03

Banco de dados

Google Maps

SMS

Review

sábado, 27 de outubro de 12

Page 6: Aula android 03

Banco de dados

Google Maps

SMS

Review

sábado, 27 de outubro de 12

Page 7: Aula android 03

Banco de dados

Google Maps

SMS

Review

sábado, 27 de outubro de 12

Page 8: Aula android 03

sábado, 27 de outubro de 12

Page 9: Aula android 03

Review

sábado, 27 de outubro de 12

Page 10: Aula android 03

ReviewActivity

sábado, 27 de outubro de 12

Page 11: Aula android 03

ReviewActivity

sábado, 27 de outubro de 12

Page 12: Aula android 03

ReviewActivity

sábado, 27 de outubro de 12

Page 13: Aula android 03

ReviewActivity

sábado, 27 de outubro de 12

Page 14: Aula android 03

Review

sábado, 27 de outubro de 12

Page 15: Aula android 03

Review

Ciclo de vida

sábado, 27 de outubro de 12

Page 16: Aula android 03

Review

sábado, 27 de outubro de 12

Page 17: Aula android 03

Review

AndroidManifest.xmlsábado, 27 de outubro de 12

Page 18: Aula android 03

Review

sábado, 27 de outubro de 12

Page 19: Aula android 03

Review

//Criando uma intent, onde iremos dizer para onde essa "intenção" irá.Intent it = new Intent(ClassActivityCorrente.this, OutraTelaActivity.class);

27//Funcão para dar inicio a intent.

28startActivity(it);

Intent

sábado, 27 de outubro de 12

Page 20: Aula android 03

Review

sábado, 27 de outubro de 12

Page 21: Aula android 03

Review<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.exemploandroid" android:versionCode="1" android:versionName="1.0" >

<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15" />

<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".NovaActivity"/> </application>

</manifest>sábado, 27 de outubro de 12

Page 22: Aula android 03

Review

sábado, 27 de outubro de 12

Page 23: Aula android 03

Review

Passar informações entre activitys

putExtra()

get?Extra()sábado, 27 de outubro de 12

Page 24: Aula android 03

Review

sábado, 27 de outubro de 12

Page 25: Aula android 03

Review

BroadcastReceiver

sábado, 27 de outubro de 12

Page 26: Aula android 03

Review

BroadcastReceiver

Notification

sábado, 27 de outubro de 12

Page 27: Aula android 03

Review

BroadcastReceiver

Notification

Service

sábado, 27 de outubro de 12

Page 28: Aula android 03

Review

sábado, 27 de outubro de 12

Page 29: Aula android 03

Review

AbsoluteLayout

sábado, 27 de outubro de 12

Page 30: Aula android 03

Review

AbsoluteLayout

FrameLayout

sábado, 27 de outubro de 12

Page 31: Aula android 03

Review

AbsoluteLayout

FrameLayout

TableLayout

sábado, 27 de outubro de 12

Page 32: Aula android 03

Review

AbsoluteLayout

FrameLayout

TableLayout

RelativeLayout

sábado, 27 de outubro de 12

Page 33: Aula android 03

Google Maps

sábado, 27 de outubro de 12

Page 34: Aula android 03

Primeiro passo

sábado, 27 de outubro de 12

Page 35: Aula android 03

Primeiro passo

sábado, 27 de outubro de 12

Page 36: Aula android 03

Primeiro passo

sábado, 27 de outubro de 12

Page 37: Aula android 03

Primeiro passo

sábado, 27 de outubro de 12

Page 38: Aula android 03

Se o projeto estiver criado?

sábado, 27 de outubro de 12

Page 39: Aula android 03

Se o projeto estiver criado?

sábado, 27 de outubro de 12

Page 40: Aula android 03

Se o projeto estiver criado?

sábado, 27 de outubro de 12

Page 41: Aula android 03

Utilizar a library

<uses-library android:name="com.google.android.maps"/>

Adicionar no manifest

Dentro da tag <application>

sábado, 27 de outubro de 12

Page 42: Aula android 03

Permissão no manifest

GPS e Internet

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/><uses-permission android:name="android.permission.INTERNET"/>

sábado, 27 de outubro de 12

Page 43: Aula android 03

Chave de acesso

Para se trabalhar com o Google maps é necessário

obter uma chave

sábado, 27 de outubro de 12

Page 44: Aula android 03

Como obter?

Para obter a chave do Google Maps é

necessário estar com o certificado digital que se utiliza para assinar a

aplicação

sábado, 27 de outubro de 12

Page 45: Aula android 03

sábado, 27 de outubro de 12

Page 46: Aula android 03

Necessário obter o fingerprint

sábado, 27 de outubro de 12

Page 47: Aula android 03

Gerando chave

http://code.google.com/android/maps-api-signup.html

sábado, 27 de outubro de 12

Page 48: Aula android 03

Gerando chave

sábado, 27 de outubro de 12

Page 49: Aula android 03

Gerando chave

sábado, 27 de outubro de 12

Page 50: Aula android 03

public class MainActivity extends MapActivity {

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MapView mapView = new MapView(this, "key"); setContentView(mapView); }

@Override protected boolean isRouteDisplayed() { return false; }

}

MapActivity

sábado, 27 de outubro de 12

Page 51: Aula android 03

public class MainActivity extends MapActivity {

@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); MapView mapView = new MapView(this, "key"); setContentView(mapView); }

@Override protected boolean isRouteDisplayed() { return false; }

}

MapActivity

sábado, 27 de outubro de 12

Page 52: Aula android 03

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" >

<com.google.android.maps.MapView android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="key" />

</RelativeLayout>

sábado, 27 de outubro de 12

Page 53: Aula android 03

Métodos do MapView

Método DescriçãosetSatellite(boolean) Configura o mapa para visualização do tipo

satélite

setStreetView(boolean) Configura o mapa para exibir as ruas

setTraffic(boolean) Configura o mapa para aexibir as ruas e condições de tráfego

sábado, 27 de outubro de 12

Page 54: Aula android 03

Achando um ponto no mapa

GeoPoint geoPoint = new GeoPoint(latitudeE6, longitudeE6);

Necessário estar na notação de microdegress

sábado, 27 de outubro de 12

Page 55: Aula android 03

Microdegress

1E6 = 1.000.000

sábado, 27 de outubro de 12

Page 56: Aula android 03

//Grausdouble latitude = -25.442580;double longitude = -49.279840;//Converte para microdegress (graus * 1E6)int latitudeE6 = (int) (latitude * 1E6);int longitudeE6 = (int) (longitude * 1E6);

Exemplo

sábado, 27 de outubro de 12

Page 57: Aula android 03

GeoPoint

sábado, 27 de outubro de 12

Page 58: Aula android 03

Para definimos um ponto

sábado, 27 de outubro de 12

Page 59: Aula android 03

GeoPoint geoPoint = new GeoPoint(latitudeE6, longitudeE6);mapView.getController().setCenter(geoPoint);mapView.getController().setZoom(18);

Exemplo

sábado, 27 de outubro de 12

Page 60: Aula android 03

sábado, 27 de outubro de 12

Page 61: Aula android 03

setBuiltInZoomControls(boolean)

sábado, 27 de outubro de 12

Page 62: Aula android 03

setBuiltInZoomControls(boolean)

sábado, 27 de outubro de 12

Page 63: Aula android 03

mapView.setClickable(boolean);

Permitir (ou não) o usuário “passiar” pelo mapa

sábado, 27 de outubro de 12

Page 64: Aula android 03

Overlay

sábado, 27 de outubro de 12

Page 65: Aula android 03

Marcar posição

Necessário criar uma classe que extenda de Overlay

sábado, 27 de outubro de 12

Page 66: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 67: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 68: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 69: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 70: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 71: Aula android 03

CirculoOverleypublic class CirculoOverlay extends Overlay { private GeoPoint geoPoint; public CirculoOverlay(GeoPoint geoPoint) { this.geoPoint = geoPoint; } @Override public void draw(Canvas canvas, MapView mapView, boolean shadow) { super.draw(canvas, mapView, shadow); if (geoPoint != null) { Point point = mapView.getProjection().toPixels(geoPoint, null); Paint paint = new Paint(); paint.setColor(Color.RED); canvas.drawCircle(point.x, point.y, 10, paint); } }

}

sábado, 27 de outubro de 12

Page 72: Aula android 03

Podemos adicionar vários pontos

mapView.getOverlays().add(new CirculoOverlay(geoPoint));

sábado, 27 de outubro de 12

Page 73: Aula android 03

sábado, 27 de outubro de 12

Page 74: Aula android 03

Exercício

• Criar estrutura para se trabalhar com o google maps

• Adicionar no layout 2 edits para informar a latitude e a longitude

• Criar um botão que atualize a tela diante a informação nos edits

sábado, 27 de outubro de 12

Page 75: Aula android 03

Capturando minha localização

sábado, 27 de outubro de 12

Page 76: Aula android 03

MyLocationOverlay

MyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);myLocationOverlay.enableCompass(); //Ativar bussolamyLocationOverlay.enableMyLocation();mapView.getOverlays().add(myLocationOverlay);

sábado, 27 de outubro de 12

Page 77: Aula android 03

LocationListenerpublic class MainActivity extends MapActivity implements LocationListener {

@Override public void onLocationChanged(Location arg0) { // TODO Auto-generated method stub }

@Override public void onProviderDisabled(String arg0) { // TODO Auto-generated method stub }

@Override public void onProviderEnabled(String arg0) { // TODO Auto-generated method stub }

@Override public void onStatusChanged(String arg0, int arg1, Bundle arg2) {

LocationProvider.AVAILABLE LocationProvider.OUT_OF_SERVICE LocationProvider.TEMPORARILY_UNAVAILABLE }}

sábado, 27 de outubro de 12

Page 78: Aula android 03

LocationManager locationManager = (LocationManager) getSystemService(locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);if (!gpsEnabled) { Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); startActivity(settingsIntent);}

sábado, 27 de outubro de 12

Page 79: Aula android 03

Pesquisando um endereço

sábado, 27 de outubro de 12

Page 80: Aula android 03

Geocode

Geocoder geocoder = new Geocoder(this);try { List<Address> addresses = geocoder.getFromLocationName(“Endereço”, maxResults); int latitude = calcular1E6(addresses.get(0).getLatitude()); int longitude = calcular1E6(addresses.get(0).getLongitude()); GeoPoint geoPoint = new GeoPoint(latitude, longitude); mapView.getOverlays().add(new CirculoOverlay(geoPoint)); mapView.getController().setCenter(geoPoint); mapView.getController().setZoom(18);} catch (IOException e) { e.printStackTrace();}

sábado, 27 de outubro de 12

Page 81: Aula android 03

Exercicio

• Adicionar um edit na tela para se digitar o endereço

• Adicionar um button na tela para pesquisar

• Adicionar mapa na tela

sábado, 27 de outubro de 12

Page 82: Aula android 03

Exercicio

sábado, 27 de outubro de 12

Page 83: Aula android 03

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >

<LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" >

<EditText android:id="@+id/edtEndereco" android:layout_width="fill_parent" android:layout_height="wrap_content" android:ems="10" />

<Button android:id="@+id/btnPesquisa" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Pesquisar" android:onClick="onPesquisar" android:layout_gravity="center_horizontal" /> </LinearLayout>

<com.google.android.maps.MapView android:id="@+id/map_view" android:layout_width="fill_parent" android:layout_height="fill_parent" android:apiKey="06T63Ikl10JbvKGOw8lqtEi8bvdlHJgwokXP1sw" />

</LinearLayout>

sábado, 27 de outubro de 12

Page 84: Aula android 03

Traçar rota

sábado, 27 de outubro de 12

Page 86: Aula android 03

SMS

sábado, 27 de outubro de 12

Page 90: Aula android 03

sábado, 27 de outubro de 12

Page 91: Aula android 03

Banco de dados

sábado, 27 de outubro de 12

Page 92: Aula android 03

Banco de dados

SQLite

sábado, 27 de outubro de 12

Page 93: Aula android 03

Banco de dados

SQLite

ORMLite

http://ormlite.com/sábado, 27 de outubro de 12

Page 94: Aula android 03

sábado, 27 de outubro de 12

Page 95: Aula android 03

O que é ORMLite?

sábado, 27 de outubro de 12

Page 96: Aula android 03

O que é ORMLite?

Um framework ORM (Object Relational Mapping)

sábado, 27 de outubro de 12

Page 97: Aula android 03

sábado, 27 de outubro de 12

Page 98: Aula android 03

O que é necessário?

Baixar as libs:

http://ormlite.com/releases/4.42/ormlite-android-4.42.jar

http://ormlite.com/releases/4.42/ormlite-core-4.42.jar

sábado, 27 de outubro de 12

Page 99: Aula android 03

O que é necessário?

E coloca-las dentro da pasta libs no projeto

sábado, 27 de outubro de 12

Page 100: Aula android 03

O que é necessário?

sábado, 27 de outubro de 12

Page 101: Aula android 03

O que é necessário?Adicionar as libs ao projeto

sábado, 27 de outubro de 12

Page 102: Aula android 03

O que é necessário?

sábado, 27 de outubro de 12

Page 103: Aula android 03

O que é necessário?

sábado, 27 de outubro de 12

Page 104: Aula android 03

O que é necessário?

sábado, 27 de outubro de 12

Page 105: Aula android 03

O que é necessário?

sábado, 27 de outubro de 12

Page 106: Aula android 03

sábado, 27 de outubro de 12

Page 107: Aula android 03

Biblioteca do ORMLite adicionada

sábado, 27 de outubro de 12

Page 108: Aula android 03

sábado, 27 de outubro de 12

Page 109: Aula android 03

Vamos imaginar um pouco...

sábado, 27 de outubro de 12

Page 110: Aula android 03

Criar uma classe Cliente

sábado, 27 de outubro de 12

Page 111: Aula android 03

E fazer com que a classe represente uma tabela no banco

sábado, 27 de outubro de 12

Page 112: Aula android 03

public class Cliente { private String nome; private String endereco; private Date dataNascimento; public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public String getEndereco() { return endereco; } public void setEndereco(String endereco) { this.endereco = endereco; } public Date getDataNascimento() { return dataNascimento; } public void setDataNascimento(Date dataNascimento) { this.dataNascimento = dataNascimento; }}

sábado, 27 de outubro de 12

Page 113: Aula android 03

Annotation

sábado, 27 de outubro de 12

Page 114: Aula android 03

Annotation

@DatabaseField

@DatabaseTable

sábado, 27 de outubro de 12

Page 115: Aula android 03

@DatabaseTable

@DatabaseTablepublic class Cliente {}

sábado, 27 de outubro de 12

Page 116: Aula android 03

@DatabaseField

@DatabaseField private String nome;

sábado, 27 de outubro de 12

Page 117: Aula android 03

Exemplo@DatabaseTablepublic class Cliente { @DatabaseField(id=true, generatedId=true) private Integer id; @DatabaseField private String nome; @DatabaseField private String endereco; @DatabaseField(columnName="data_nascimento") private Date dataNascimento;

sábado, 27 de outubro de 12

Page 118: Aula android 03

DAO

Data Access Object

sábado, 27 de outubro de 12

Page 119: Aula android 03

ClienteDao

public class ClienteDao extends BaseDaoImpl<Cliente, Integer> {

public ClienteDao(ConnectionSource connectionSource) throws SQLException { super(Cliente.class); setConnectionSource(connectionSource); initialize(); }}

sábado, 27 de outubro de 12

Page 120: Aula android 03

ClienteDao

public class ClienteDao extends BaseDaoImpl<Cliente, Integer> {

public ClienteDao(ConnectionSource connectionSource) throws SQLException { super(Cliente.class); setConnectionSource(connectionSource); initialize(); }}

sábado, 27 de outubro de 12

Page 121: Aula android 03

Estrutura base

sábado, 27 de outubro de 12

Page 122: Aula android 03

DatabaseHelper

No proprio site do ORMLite é disponibilizada uma classe para auxiliar na criação/atualização/remorção do banco

http://ormlite.com/android/examples/

sábado, 27 de outubro de 12

Page 123: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 124: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 125: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 126: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 127: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 128: Aula android 03

DataBaseHelperpublic class DatabaseHelper extends OrmLiteSqliteOpenHelper {

private static final String DATABASE_NAME = "banco.db"; private static final int DATABASE_VERSION = 1;

public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); }

@Override public void onCreate(SQLiteDatabase db, ConnectionSource connectionSource) { try { TableUtils.createTable(connectionSource, Cliente.class); //Aqui é definido as classes modelos que representam uma tabela no banco. } catch (SQLException e) { throw new RuntimeException(e); } }

sábado, 27 de outubro de 12

Page 129: Aula android 03

@Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) { try { Log.i(DatabaseHelper.class.getName(), "onUpgrade"); TableUtils.dropTable(connectionSource, Cliente.class, true); onCreate(db, connectionSource); } catch (SQLException e) { Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e); throw new RuntimeException(e); } }

DataBaseHelper

sábado, 27 de outubro de 12

Page 130: Aula android 03

@Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) { try { Log.i(DatabaseHelper.class.getName(), "onUpgrade"); TableUtils.dropTable(connectionSource, Cliente.class, true); onCreate(db, connectionSource); } catch (SQLException e) { Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e); throw new RuntimeException(e); } }

DataBaseHelper

sábado, 27 de outubro de 12

Page 131: Aula android 03

@Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, int oldVersion, int newVersion) { try { Log.i(DatabaseHelper.class.getName(), "onUpgrade"); TableUtils.dropTable(connectionSource, Cliente.class, true); onCreate(db, connectionSource); } catch (SQLException e) { Log.e(DatabaseHelper.class.getName(), "Can't drop databases", e); throw new RuntimeException(e); } }

DataBaseHelper

sábado, 27 de outubro de 12

Page 132: Aula android 03

Instânciando um DAO

sábado, 27 de outubro de 12

Page 133: Aula android 03

Instância do DAO

DatabaseHelper helper = new DatabaseHelper(getContext());

ClienteDao dao = new ClienteDao(helper.getConnectionSource());

sábado, 27 de outubro de 12

Page 134: Aula android 03

Persistindo um objeto

sábado, 27 de outubro de 12

Page 135: Aula android 03

dao.create(cliente);

sábado, 27 de outubro de 12

Page 136: Aula android 03

Buscando todos os objetos

sábado, 27 de outubro de 12

Page 137: Aula android 03

dao.queryForAll()

sábado, 27 de outubro de 12

Page 138: Aula android 03

Buscando por id

sábado, 27 de outubro de 12

Page 139: Aula android 03

dao.queryForId(id)

sábado, 27 de outubro de 12

Page 140: Aula android 03

Buscando por qualquer campo

sábado, 27 de outubro de 12

Page 141: Aula android 03

dao.queryForEq(fieldName, value)

sábado, 27 de outubro de 12

Page 142: Aula android 03

Exercício• Criar estrutura para se trabalhar com banco

de dados

• Criar uma classe que será persistida

• Criar o DAO dessa classe

• Criar tela com edits, cada edit será um campo

• Inserir botão de gravar

• Inserir botão para imprimir todos os dados no log

sábado, 27 de outubro de 12