Aula android 03

535 views

Published on

Aula 3 de android

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
535
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
64
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Aula android 03

  1. 1. Android Desenvolvimentosábado, 27 de outubro de 12
  2. 2. Desenvolvedor de software www.carloscavalcanti.com contato@carloscavalcanti.com twitter @carloscaval github.com/carloscavalcantisábado, 27 de outubro de 12
  3. 3. Review Google Maps SMS Banco de dadossábado, 27 de outubro de 12
  4. 4. Review Google Maps SMS Banco de dadossábado, 27 de outubro de 12
  5. 5. Review Google Maps SMS Banco de dadossábado, 27 de outubro de 12
  6. 6. Review Google Maps SMS Banco de dadossábado, 27 de outubro de 12
  7. 7. Review Google Maps SMS Banco de dadossábado, 27 de outubro de 12
  8. 8. sábado, 27 de outubro de 12
  9. 9. Reviewsábado, 27 de outubro de 12
  10. 10. Review Activitysábado, 27 de outubro de 12
  11. 11. Review Activitysábado, 27 de outubro de 12
  12. 12. Review Activitysábado, 27 de outubro de 12
  13. 13. Review Activitysábado, 27 de outubro de 12
  14. 14. Reviewsábado, 27 de outubro de 12
  15. 15. Review Ciclo de vidasábado, 27 de outubro de 12
  16. 16. Reviewsábado, 27 de outubro de 12
  17. 17. Review AndroidManifest.xmlsábado, 27 de outubro de 12
  18. 18. Reviewsábado, 27 de outubro de 12
  19. 19. Review Intent//Criando uma intent, onde iremos dizer para onde essa "intenção" irá.Intent it = new Intent(ClassActivityCorrente.this, OutraTelaActivity.class);//Funcão para dar inicio a intent.startActivity(it);sábado, 27 de outubro de 12
  20. 20. Reviewsábado, 27 de outubro de 12
  21. 21. 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
  22. 22. Reviewsábado, 27 de outubro de 12
  23. 23. Review Passar informações entre activitys putExtra() get?Extra()sábado, 27 de outubro de 12
  24. 24. Reviewsábado, 27 de outubro de 12
  25. 25. Review BroadcastReceiversábado, 27 de outubro de 12
  26. 26. Review BroadcastReceiver Notificationsábado, 27 de outubro de 12
  27. 27. Review BroadcastReceiver Notification Servicesábado, 27 de outubro de 12
  28. 28. Reviewsábado, 27 de outubro de 12
  29. 29. Review AbsoluteLayoutsábado, 27 de outubro de 12
  30. 30. Review AbsoluteLayout FrameLayoutsábado, 27 de outubro de 12
  31. 31. Review AbsoluteLayout TableLayout FrameLayoutsábado, 27 de outubro de 12
  32. 32. Review AbsoluteLayout TableLayout FrameLayout RelativeLayoutsábado, 27 de outubro de 12
  33. 33. Google Mapssábado, 27 de outubro de 12
  34. 34. Primeiro passosábado, 27 de outubro de 12
  35. 35. Primeiro passosábado, 27 de outubro de 12
  36. 36. Primeiro passosábado, 27 de outubro de 12
  37. 37. Primeiro passosábado, 27 de outubro de 12
  38. 38. Se o projeto estiver criado?sábado, 27 de outubro de 12
  39. 39. Se o projeto estiver criado?sábado, 27 de outubro de 12
  40. 40. Se o projeto estiver criado?sábado, 27 de outubro de 12
  41. 41. Utilizar a library Adicionar no manifest <uses-library android:name="com.google.android.maps"/> Dentro da tag <application>sábado, 27 de outubro de 12
  42. 42. 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
  43. 43. Chave de acesso Para se trabalhar com o Google maps é necessário obter uma chavesábado, 27 de outubro de 12
  44. 44. Como obter? Para obter a chave do Google Maps é necessário estar com o certificado digital que se utiliza para assinar a aplicaçãosábado, 27 de outubro de 12
  45. 45. sábado, 27 de outubro de 12
  46. 46. Necessário obter o fingerprintsábado, 27 de outubro de 12
  47. 47. Gerando chave http://code.google.com/android/maps-api-signup.htmlsábado, 27 de outubro de 12
  48. 48. Gerando chavesábado, 27 de outubro de 12
  49. 49. Gerando chavesábado, 27 de outubro de 12
  50. 50. MapActivity 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; } }sábado, 27 de outubro de 12
  51. 51. MapActivity 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; } }sábado, 27 de outubro de 12
  52. 52. <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
  53. 53. Métodos do MapView Método Descrição setSatellite(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áfegosábado, 27 de outubro de 12
  54. 54. Achando um ponto no mapa GeoPoint geoPoint = new GeoPoint(latitudeE6, longitudeE6); Necessário estar na notação de microdegresssábado, 27 de outubro de 12
  55. 55. Microdegress 1E6 = 1.000.000sábado, 27 de outubro de 12
  56. 56. Exemplo//Grausdouble latitude = -25.442580;double longitude = -49.279840;//Converte para microdegress (graus * 1E6)int latitudeE6 = (int) (latitude * 1E6);int longitudeE6 = (int) (longitude * 1E6);sábado, 27 de outubro de 12
  57. 57. GeoPointsábado, 27 de outubro de 12
  58. 58. Para definimos um pontosábado, 27 de outubro de 12
  59. 59. ExemploGeoPoint geoPoint = new GeoPoint(latitudeE6, longitudeE6);mapView.getController().setCenter(geoPoint);mapView.getController().setZoom(18);sábado, 27 de outubro de 12
  60. 60. sábado, 27 de outubro de 12
  61. 61. setBuiltInZoomControls(boolean)sábado, 27 de outubro de 12
  62. 62. setBuiltInZoomControls(boolean)sábado, 27 de outubro de 12
  63. 63. mapView.setClickable(boolean); Permitir (ou não) o usuário “passiar” pelo mapasábado, 27 de outubro de 12
  64. 64. Overlaysábado, 27 de outubro de 12
  65. 65. Marcar posição Necessário criar uma classe que extenda de Overlaysábado, 27 de outubro de 12
  66. 66. 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
  67. 67. 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
  68. 68. 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
  69. 69. 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
  70. 70. 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
  71. 71. 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
  72. 72. Podemos adicionar vários pontos mapView.getOverlays().add(new CirculoOverlay(geoPoint));sábado, 27 de outubro de 12
  73. 73. sábado, 27 de outubro de 12
  74. 74. 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 editssábado, 27 de outubro de 12
  75. 75. Capturando minha localizaçãosábado, 27 de outubro de 12
  76. 76. MyLocationOverlayMyLocationOverlay myLocationOverlay = new MyLocationOverlay(this, mapView);myLocationOverlay.enableCompass(); //Ativar bussolamyLocationOverlay.enableMyLocation();mapView.getOverlays().add(myLocationOverlay);sábado, 27 de outubro de 12
  77. 77. LocationListener public 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
  78. 78. 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
  79. 79. Pesquisando um endereçosábado, 27 de outubro de 12
  80. 80. GeocodeGeocoder 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
  81. 81. Exercicio • Adicionar um edit na tela para se digitar o endereço • Adicionar um button na tela para pesquisar • Adicionar mapa na telasábado, 27 de outubro de 12
  82. 82. Exerciciosábado, 27 de outubro de 12
  83. 83. <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
  84. 84. Traçar rotasábado, 27 de outubro de 12
  85. 85. Pegar o KML http://maps.google.com/maps? f=d&hl=en&saddr=25.04202,121.534761&daddr=25.0520 2,121.554761&ie=UTF8&0&om=0&output=kmlsábado, 27 de outubro de 12
  86. 86. SMSsábado, 27 de outubro de 12
  87. 87. SMS import android.telephony.SmsManager; SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("numero", null, "mensagem", null, null); sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) Manifest <uses-permission android:name="android.permission.SEND_SMS" />sábado, 27 de outubro de 12
  88. 88. SMS import android.telephony.SmsManager; SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("numero", null, "mensagem", null, null); sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) Manifest <uses-permission android:name="android.permission.SEND_SMS" />sábado, 27 de outubro de 12
  89. 89. SMS import android.telephony.SmsManager; SmsManager smsManager = SmsManager.getDefault(); smsManager.sendTextMessage("numero", null, "mensagem", null, null); sendTextMessage(String destinationAddress, String scAddress, String text, PendingIntent sentIntent, PendingIntent deliveryIntent) Manifest <uses-permission android:name="android.permission.SEND_SMS" />sábado, 27 de outubro de 12
  90. 90. sábado, 27 de outubro de 12
  91. 91. Banco de dadossábado, 27 de outubro de 12
  92. 92. Banco de dados SQLitesábado, 27 de outubro de 12
  93. 93. Banco de dados SQLite ORMLite http://ormlite.com/sábado, 27 de outubro de 12
  94. 94. sábado, 27 de outubro de 12
  95. 95. O que é ORMLite?sábado, 27 de outubro de 12
  96. 96. O que é ORMLite? Um framework ORM (Object Relational Mapping)sábado, 27 de outubro de 12
  97. 97. sábado, 27 de outubro de 12
  98. 98. 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.jarsábado, 27 de outubro de 12
  99. 99. O que é necessário? E coloca-las dentro da pasta libs no projetosábado, 27 de outubro de 12
  100. 100. O que é necessário?sábado, 27 de outubro de 12
  101. 101. O que é necessário? Adicionar as libs ao projetosábado, 27 de outubro de 12
  102. 102. O que é necessário?sábado, 27 de outubro de 12
  103. 103. O que é necessário?sábado, 27 de outubro de 12
  104. 104. O que é necessário?sábado, 27 de outubro de 12
  105. 105. O que é necessário?sábado, 27 de outubro de 12
  106. 106. sábado, 27 de outubro de 12
  107. 107. Biblioteca do ORMLite adicionadasábado, 27 de outubro de 12
  108. 108. sábado, 27 de outubro de 12
  109. 109. Vamos imaginar um pouco...sábado, 27 de outubro de 12
  110. 110. Criar uma classe Clientesábado, 27 de outubro de 12
  111. 111. E fazer com que a classe represente uma tabela no bancosábado, 27 de outubro de 12
  112. 112. 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
  113. 113. Annotationsábado, 27 de outubro de 12
  114. 114. Annotation @DatabaseTable @DatabaseFieldsábado, 27 de outubro de 12
  115. 115. @DatabaseTable @DatabaseTable public class Cliente { }sábado, 27 de outubro de 12
  116. 116. @DatabaseField @DatabaseField private String nome;sábado, 27 de outubro de 12
  117. 117. Exemplo @DatabaseTable public 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
  118. 118. DAO Data Access Objectsábado, 27 de outubro de 12
  119. 119. ClienteDaopublic 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
  120. 120. ClienteDaopublic 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
  121. 121. Estrutura basesábado, 27 de outubro de 12
  122. 122. 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
  123. 123. DataBaseHelper public 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
  124. 124. DataBaseHelper public 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
  125. 125. DataBaseHelper public 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
  126. 126. DataBaseHelper public 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
  127. 127. DataBaseHelper public 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
  128. 128. DataBaseHelper public 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
  129. 129. DataBaseHelper @Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, intoldVersion, 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(), "Cant drop databases", e); throw new RuntimeException(e); } }sábado, 27 de outubro de 12
  130. 130. DataBaseHelper @Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, intoldVersion, 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(), "Cant drop databases", e); throw new RuntimeException(e); } }sábado, 27 de outubro de 12
  131. 131. DataBaseHelper @Override public void onUpgrade(SQLiteDatabase db, ConnectionSource connectionSource, intoldVersion, 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(), "Cant drop databases", e); throw new RuntimeException(e); } }sábado, 27 de outubro de 12
  132. 132. Instânciando um DAOsábado, 27 de outubro de 12
  133. 133. Instância do DAO DatabaseHelper helper = new DatabaseHelper(getContext()); ClienteDao dao = new ClienteDao(helper.getConnectionSource());sábado, 27 de outubro de 12
  134. 134. Persistindo um objetosábado, 27 de outubro de 12
  135. 135. dao.create(cliente);sábado, 27 de outubro de 12
  136. 136. Buscando todos os objetossábado, 27 de outubro de 12
  137. 137. dao.queryForAll()sábado, 27 de outubro de 12
  138. 138. Buscando por idsábado, 27 de outubro de 12
  139. 139. dao.queryForId(id)sábado, 27 de outubro de 12
  140. 140. Buscando por qualquer camposábado, 27 de outubro de 12
  141. 141. dao.queryForEq(fieldName, value)sábado, 27 de outubro de 12
  142. 142. 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 logsábado, 27 de outubro de 12

×