Android	

100% Hands-on
GOOGLE ANdroid
Mario Jorge Pereira
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
Por onde começar?
http://developer.android.com
ADT Bundle*:
•Eclipse + ADT plugin
•Android SDK Tools
•Android Platform-tools
*Pré requisito: JDK instalada
Desenvolvimento
Chega de Bla Bla Bla!
Vamos Começar?
Eclipse + ADT
Olá MundoFile>New>AndroidApplicationProject
File>New>AndroidApplicationProject
Olá Mundo
File>New>AndroidApplicationProject
Olá Mundo
File>New>AndroidApplicationProject
Olá Mundo
Olá Mundo
Para rodar precisamos
do emulador
Vamos criar?
AVD	

AndroidVirtual
Device Maneger
Android SDK
Maneger
AVD	

AndroidVirtual 	

Device Maneger
Inicie o emulador que
voce criou?
Isso demora :( …
Depois que abrir não
feche o Emulador!!
Run As..
Android application
Importante!
Activity
XML
public class OlaMundo extends Activity {	
!
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	
	 } 	
}
src/ 

(código fonte: .java)"
gen/

(código gerado: R.java )"
bin/

(bytecodes: .dex)"
libs/ 

(bibliotecas)"
res/ 

(recursos: layouts, strigs,
icones …)"
assets/ 

(outros recursos: arquivos em
geral)
Estrutura
<?xml version="1.0" encoding="utf-8"?>	
<resources>	
!
<string name="app_name">Alo Mundo</string>	
<string name="action_settings">Settings</string>	
<string name="hello_world">Hello world!</string>	
!
</resources>
strings.xml
/* AUTO-GENERATED FILE. DO NOT MODIFY.*/	
public final class R {	
public static final class attr {	
}	
public static final class dimen {	
public static final int activity_horizontal_margin=0x7f040000;	
public static final int activity_vertical_margin=0x7f040001;	
}	
public static final class layout {	
public static final int activity_main=0x7f030000;	
}	
	 	 ...	
}
R.java
<?xml version="1.0" encoding=“utf-8"?>	
<manifest ...>	
	 ...	
<application ... >	
<activity	
android:name="br.com.mariojp.olamundo.OlaMundoActivity"	
android:label="@string/app_name" >	
<intent-filter>	
<action android:name="android.intent.action.MAIN" />	
<category android:name="android.intent.category.LAUNCHER" />	
</intent-filter>	
</activity>	
</application>	
</manifest>	
AndroidManifest.xml
Log.[nivel](“TAG”,“MENSAGEM”);	
!
Log.v	 	 	 (Verbose)	
Log.d	 	 	 (Debug)	
Log.i	 	 	 (Info)	
Log.w	 	 	 (Warning)	
Log.e	 	 	 (Erro)	
Log.wtf	 (...)	
Log
public class OlaMundoActivity extends Activity {	
!
@Override	
protected void onCreate(Bundle savedInstanceState) {	
super.onCreate(savedInstanceState);	
setContentView(R.layout.activity_main);	
	 	 	 Log.i("Ola mundo", "onCreate");	
!
}	
!
}
OlaMundoActivity.java
use o logging:	

Log.i(“Ciclo deVida”,”<método>”)	

nos métodos onCreate, onStart,
onResume, onRestart, onPause,
onStop e onDestroy.
Entendendo o ciclo de vida
Run As..
Android application
Quais os métodos são chamados quando a
aplicação inicia?
O que Aconteceu
Quando clicar em voltar qual método é
executado?
Alterando o aplicativo de Retrato para
paisagem (control +F11) o que acontece?
Ainda no OlaMundo
O arquivo
OlaMundoActivity.java
public class OlaMundo extends Activity {	
!
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	
	 }	
!
}
Na pasta res/layout
1. Renomear o arquivo fragment_ola_mundo.xml para
activity_ola_mundo.xml	

!
2. Alterar a propriedade:
tools:context=“br.com.mariojp.OlaMundoActivity”
Um pouco de Layout
activity_ola_mundo.xml
<RelativeLayout ... >	
...	
<Button	
android:id="@+id/botao"	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:text="Botao" />	
...	
</RelativeLayout>	
activity_ola_mundo.xml
Run As..
Android application
<LinearLayout 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"	
android:orientation="horizontal"	
tools:context="br.com.mariojp.olamundo.OlaMundoActivity" >	
!
. . .
	
!
</LinearLayout>
activity_ola_mundo.xml
Run As..
Android application
<LinearLayout 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"	
android:orientation="vertical"	
tools:context="br.com.mariojp.olamundo.OlaMundoActivity" >	
!
. . .
	
!
</LinearLayout>
activity_ola_mundo.xml
Run As..
Android application
<RelativeLayout ... >	
...	
<Button	
android:id="@+id/botao"	
android:layout_width="match_parent"	
android:layout_height="wrap_content"	
android:text="Botao" />	
...	
</RelativeLayout>	
activity_ola_mundo.xml
Run As..
Android application
Um pouco de Comportamento
OlaMundoActivity.java
[Tipo] var = ([Tipo]) findViewById(R.id.[id]);	
!
var.metodo();	
!
findbyid
<RelativeLayout ... >	
...	
<TextView	
android:id="@+id/texto"	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:text="@string/hello_world" />	
...	
</RelativeLayout>	
activity_ola_mundo.xml
public class OlaMundoActivity extends Activity {	
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	
	 	 TextView texto = (TextView) findViewById(R.id.texto);	
	 	 texto.setText("Outro Texto");		 }	
!
}
OlaMundoActivity.java
Run As..
Android application
Botão Aplicação
Listener
Clicou?
Ação do Botão
public class OlaMundoActivity extends Activity {	
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	
!
	 	 Button button = (Button) findViewById(R.id.botao);	
	 	 button.setOnClickListener(new Ouvinte());	
	 	 	
	 }	
}
OlaMundoActivity.java
public class Ouvinte implements OnClickListener {	
!
	 @Override	
	 public void onClick(View clicado) {	
	 	 Log.i("TAG", "Botao Clicado");		 }	
!
}
Ouvinte.java
Run As..
Android application
public class OlaMundoActivity extends Activity {	
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	
	 	 Button button = (Button) findViewById(R.id.botao);	
	 	 button.setOnClickListener(new OnClickListener() {	
	 	 	 @Override	
	 	 	 public void onClick(View v) {	
	 	 	 	 Log.i("TAG", "Botao Clicado");	
	 	 	 }	
	 	 });	
	 }	
}	
OlaMundoActivity.java
Run As..
Android application
<RelativeLayout ... >	
...	
<Button	
android:id="@+id/botao"	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:text="Botao"	
android:onClick="metodo" />	
...	
</RelativeLayout>	
activity_ola_mundo.xml
public class OlaMundoActivity extends Activity {	
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);	 	 	
	 }	
	 	
	 public void metodo(View v) {		 	 Log.i("TAG", "Botao Clicado");		 }
OlaMundoActivity.java
Run As..
Android application
Toast.makeText(this, "TEXTO", Toast.LENGTH_LONG).show();	
!
!
Toast.LENGTH_LONG	
!
Toast.LENGTH_SHORT	
!
TOAST
public class OlaMundoActivity extends Activity {	
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.activity_ola_mundo);		 	
	 }	
	 	
	 public void metodo(View v) {		 Toast.makeText(this, "AloMundo!", Toast.LENGTH_LONG).show();	
	 }	
!
}
OlaMundoActivity.java
Run As..
Android application
Faculdade
File > New > Android Application Project
Crie o projeto Android
File > New > Android Application Project
public class ListaDisciplinas extends Activity {	
!
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.lista_diciplinas);	
	 }	
}	
ListaDisciplinas.java
<?xml version="1.0" encoding="utf-8"?>	
<LinearLayout 	
xmlns:android="http://schemas.android.com/apk/res/android"	
android:layout_width="match_parent"	
android:layout_height="match_parent" >	
!
<ListView	
android:id="@+id/lista_disciplinas"	
android:layout_width="match_parent"	
android:layout_height="match_parent" >	
</ListView>	
!
</LinearLayout>
lista_disciplinas.xml
public class ListaDisciplinas extends Activity {	
@Override	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.lista_diciplinas);	
!
	 String[] disciplinas = {"Redes", "Algoritimos", "Programacao"};	
	 int layout = android.R.layout.simple_list_item_1;	
!
	 ArrayAdapter<String> adapter = 	
new ArrayAdapter<String>(this,layout, disciplinas);	
!
	 	 ListView lista = (ListView) findViewById(R.id.lista_disciplinas);	
!
	 	 lista.setAdapter(adapter);	 	!
	 }	
}
ListaDisciplinas.java
Run As..
Android application
public class ListaDisciplinas extends Activity {	
!
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
...	
!
	 	 lista.setOnItemClickListener(new OnItemClickListener() {	
	 	 	 public void onItemClick(AdapterView<?> adapter, View view,	
	 	 	 	 	 int posicao, long id) {	
	 	 	 	 Toast.makeText(ListaDisciplinas.this, "Clicou "+posicao,	
	 	 	 	 	 	 Toast.LENGTH_SHORT).show();	
	 	 	 }	
	 	 });	
	 }	
}
ListaDisciplinas.java
Run As..
Android application
public class ListaDisciplinas extends Activity {	
!
	 @Override	
	 protected void onCreate(Bundle savedInstanceState) {	
...	
	 	 lista.setOnItemLongClickListener(new OnItemLongClickListener() {	
	 	 public boolean onItemLongClick(AdapterView<?> adapter, 	
	 	 	 	 View view, int posicao, long id) {	
	 	 	 	 Toast.makeText( ListaDisciplinas.this,	
	 	 	 	 	 	 adapter.getItemAtPosition(posicao).toString(), 	 	 	
	 	 	 	 	 	 Toast.LENGTH_SHORT).show();	
	 	 	 	 return false;		 	 	 }	
	 	 });	
	 }	
}
ListaDisciplinas.java
Run As..
Android application
O que aconteceu ate
aqui?
Repare que o onItemLongClick
retorna false => troque por
true.
Run As..
Android application
Vamos criar um
formulário
File>New>AndroidXMLFile
res/layout/disciplina.xml
<?xml version="1.0" encoding="utf-8"?>	
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	
android:layout_width="match_parent"	
android:layout_height="match_parent"	
android:orientation="vertical" >	
<ImageView 	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:src="@drawable/ic_launcher" />	
<TextView 	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:text="Disciplina" />	
<EditText android:id="@+id/disciplina"	
android:layout_width="match_parent"	
android:layout_height="wrap_content"	
android:ems="10" >	
<requestFocus />	
</EditText>	
. . .	
</LinearLayout>
disciplinas.xml
<?xml version="1.0" encoding="utf-8"?>	
<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android"	
android:layout_width="match_parent"	
android:layout_height="match_parent"	
android:orientation="vertical" >	
!
. . .	
!
<EditText	
android:id="@+id/nota2"	
android:layout_width="match_parent"	
android:layout_height="wrap_content"	
android:ems="10"	
android:inputType="numberSigned" />	
<Button	
android:id="@+id/botao"	
android:layout_width="wrap_content"	
android:layout_height="wrap_content"	
android:text="Salvar" />	
!
</LinearLayout>	
disciplinas.xml
Pode usar o Editor
android.app.Activity
File>New>Class
public class DisciplinaActivity extends Activity {	
	 	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.disciplina);	
	 }	
!
}	
DisciplinaActivity.java
public class ListaDisciplinas extends Activity {	
. . . 	
	 public boolean onCreateOptionsMenu(Menu menu) {	
	 	 MenuInflater inflater = getMenuInflater();	
	 	 inflater.inflate(R.menu.lista_disciplinas, menu);	
	 	 return super.onCreateOptionsMenu(menu);	
	 }	
}
ListaDisciplinas.java
<menu xmlns:android="http://schemas.android.com/apk/res/android"	
xmlns:tools="http://schemas.android.com/tools"	
tools:context="br.com.mariojp.faculdade.ListaDisciplinas" >	
!
<item	
android:id="@+id/novo"	
android:showAsAction="always"	
android:icon="@android:drawable/btn_plus"	
android:title="Novo"/>	
!
</menu>	
lista_disciplinas.xml
public class ListaDisciplinas extends Activity {	
. . . 	
	 public boolean onOptionsItemSelected(MenuItem item) {	
	 	 int itemClicado = item.getItemId();	
	 	 	
switch (itemClicado) {		 	 case R.id.novo:		 	 	 Intent intent = new Intent(this, Disciplina.class);	
	 	 	 startActivity(intent);		 	 	 break;	
	 	 default:	
	 	 	 break;	
	 	 }	
	 	 return super.onOptionsItemSelected(item);	
	 }	
}
ListaDisciplinas.java
Run As..
Android application
<?xml version="1.0" encoding=“utf-8"?>	
<manifest ...>	
	 . . .	
<application ... >	
<activity android:name="br.com.mariojp.faculdade.Disciplina">	
	
</activity>	
. . . 	
</application>	
</manifest>	
AndroidManifest.xml
Run As..
Android application
public class DisciplinaActivity extends Activity {	
	 	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 super.onCreate(savedInstanceState);	
	 	 setContentView(R.layout.disciplina);	
	 	 	
	 	 Button button = (Button) findViewById(R.id.botao);	
	 	 button.setOnClickListener(new OnClickListener() {	
	 	 	 @Override	
	 	 	 public void onClick(View v) {	
	 	 	 	 finish();		 	 	 }	
	 	 });	
	 }	
DisciplinaActivity.java
Run As..
Android application
Banco de dados
Vamos pensar um
pouco…
DisciplinaDAO
SQLiteOpenHelper
ListaDisciplinas
public class Disciplina {		 private Long id;		 private String disciplina;		 private String professor;		 private String email;		 private Double nota1;		 private Double nota2;	// Gerar Get’s e Set's	}	
Disciplina.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
!
	 private static final String DATABASE = "BancoDisciplinas";	
	 private static final int VERSAO = 1;	
!
	 public DisciplinaDAO(Context context) {	
	 	 super(context, DATABASE, null, VERSAO);	
	 }	
!
//...	
!
}	
DisciplinaDAO.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
!
	 private static final String DATABASE = "BancoDisciplinas";	
	 private static final int VERSAO = 1;	
!
	 public DisciplinaDAO(Context context) {	
	 	 super(context, DATABASE, null, VERSAO);	
	 }	
!
	 public void onCreate(SQLiteDatabase db) {	
	 	 String ddl ="CREATE TABLE Disciplinas (id INTEGER PRIMARY KEY,"	
	 	 	 	 + " disciplina TEXT UNIQUE NOT NULL,"	
	 	 	 	 + " professor TEXT,"		 	 	 	 + " email TEXT,"		 	 	 	 + " nota1 REAL, nota2 REAL);";	
	 	 db.execSQL(ddl);		 }	
!
//...	
!
}	
DisciplinaDAO.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
!
	 private static final String DATABASE = "BancoDisciplinas";	
	 private static final int VERSAO = 1;	
!
	 public DisciplinaDAO(Context context) {	
	 	 super(context, DATABASE, null, VERSAO);	
	 }	
//...	
!
	 @Override	
	 public void onUpgrade(SQLiteDatabase db, int velha, int nova) {	
	 	 String ddl ="DROP TABLE IF EXISTS Disciplinas";	
	 	 db.execSQL(ddl);		 	 onCreate(db);		 }	
!
//...	
}
DisciplinaDAO.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
!
//...	
!
	 public void salvar(Disciplina disciplina) {	
	 	 ContentValues values = new ContentValues();	
	 	 values.put("disciplina", disciplina.getDisciplina());	
	 	 values.put("professor", disciplina.getProfessor());	
	 	 values.put("email", disciplina.getEmail());	
	 	 values.put("nota1", disciplina.getNota1());	
	 	 values.put("nota2", disciplina.getNota2());	
	 	 getWritableDatabase().insert("Disciplinas", null, values );	
	 	 	
	 }	
!
//...	
}
DisciplinaDAO.java
public class DisciplinaActivity extends Activity {	
	 private EditText nomeDisciplina; // ...nomeProfessor, email, nota1, nota2;	
!
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 nomeDisciplina = (EditText) findViewById(R.id.disciplina);	
	 	 //... outros findViewById	!
	 	 Button button = (Button) findViewById(R.id.botao);	
	 	 button.setOnClickListener(new OnClickListener() {	
	 	 	 public void onClick(View v) {	
	 	 	 	 Disciplina disciplina = new Disciplina();	
	 	 	 	 disciplina.setDisciplina(nomeDisciplina.getText().toString());	
// outros set's		 	 	 	 DisciplinaDAO dao = new DisciplinaDAO(DisciplinaActivity.this);	
	 	 	 	 dao.salvar(disciplina);	
	 	 	 	 dao.close();		 	 	 	 finish();		 	 	 }	
	 	 });	
	 }	
}
DisciplinaActivity.java
public class ListaDisciplinas extends Activity {	
!
private ListView lista;	!
protected void onCreate(Bundle savedInstanceState) {	
//...	
	 lista = (ListView) findViewById(R.id.lista_disciplinas);	
!
	 DisciplinaDAO dao = new DisciplinaDAO(this);	
	 ArrayList<Disciplina> disciplinas= dao.getLista();	
	 dao.close();	
!
	 ArrayAdapter<Disciplina> adapter = new ArrayAdapter<Disciplina>(	
	 	 	 this, android.R.layout.simple_list_item_1, disciplinas);	
	 lista.setAdapter(adapter);	//...	
	 }	
//...	
}
ListaDisciplinas.java
Run As..
Android application
public class ListaDisciplinas extends Activity {	
//...	
protected void onResume() {		 super.onResume();		 DisciplinaDAO dao = new DisciplinaDAO(this);	
	 ArrayList<Disciplina> disciplinas= dao.getLista();	
	 dao.close();	
!
	 ArrayAdapter<Disciplina> adapter = new ArrayAdapter<Disciplina>(	
this, layout,android.R.layout.simple_list_item_1);	
	 lista.setAdapter(adapter);	}	
//...	
}
ListaDisciplinas.java
Run As..
Android application
public class ListaDisciplinas extends Activity {	
//...	
	 @Override	
	 protected void onResume() {		 	 super.onResume();		 	 carregarLista();		 }	
!
	 private void carregarLista() {		 	 DisciplinaDAO dao = new DisciplinaDAO(this);	
	 	 ArrayList<Disciplina> disciplinas= dao.getLista();	
	 	 dao.close();		 	 int layout = android.R.layout.simple_list_item_1;	
	 	 ArrayAdapter<Disciplina> adapter = new
ArrayAdapter<Disciplina>(this, layout,	
	 	 	 	 disciplinas);		 	 lista.setAdapter(adapter);		 }	
//...	
}
ListaDisciplinas.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
//...	
!
public void deletar(Disciplina disciplina) {	
String[] args = { disciplina.getId().toString() };	
getWritableDatabase().delete("Disciplinas", "id=?", args);	
}	
!
//...	
}
DisciplinaDAO.java
public class ListaDisciplinas extends Activity {	
!
private ListView lista;	!
protected void onCreate(Bundle savedInstanceState) {	
//...	
	 lista = (ListView) findViewById(R.id.lista_disciplinas);	
registerForContextMenu(lista);	//...	
	 }	
//...	
}
ListaDisciplinas.java
public class ListaDisciplinas extends Activity {	
//...	
	 @Override	
	 public void onCreateContextMenu(ContextMenu menu, View v,	
	 	 	 ContextMenuInfo menuInfo) {	
	 super.onCreateContextMenu(menu, v, menuInfo);	
	 	
	 menu.add("Enviar E-mail");		 	
	 MenuItem deletar = menu.add("Deletar");	
	 deletar.setOnMenuItemClickListener(new OnMenuItemClickListener() {	
	 	 	 @Override		 	 	 public boolean onMenuItemClick(MenuItem item) {	
	 	 	 	 DisciplinaDAO dao = new DisciplinaDAO(ListaDisciplinas.this);	
	 	 	 	 dao.deletar(disciplina);	
	 	 	 	 dao.close();		 	 	 	 carregarLista();		 	 	 	 return false;		 	 	 }	
	 	 });	
	 }	
//...	
}
ListaDisciplinas.java
public class ListaDisciplinas extends Activity {	
!
	 private ListView lista;		 private Disciplina disciplina;		 	
	 protected void onCreate(Bundle savedInstanceState) 	
	 // ...	
	 	 lista.setOnItemLongClickListener(new OnItemLongClickListener() {	
	 	 	 public boolean onItemLongClick(AdapterView<?> adapter, 	
	 	 	 View view,int posicao, long id) {	
	 	 	 disciplina = (Disciplina) adapter.getItemAtPosition(posicao);	
	 	 	 return false;		 	 }	
	 	 });	
// ...	
	 } 		
// ...	
}
ListaDisciplinas.java
Run As..
Android application
lista.setOnItemClickListener(new OnItemClickListener() {	
!
	 public void onItemClick(AdapterView<?> adapter, View view,	
	 	 	 	 	 int posicao, long id) {	
!
	 Disciplina disciplina = (Disciplina) adapter.getItemAtPosition(posicao);	
!
	 Intent intent = new Intent(ListaDisciplinas.this,DisciplinaActivity.class);	
!
	 intent.putExtra("disciplinaSelecionada", disciplina);	
!
	 startActivity(intent);	!
	 }	
});	
ListaDisciplinas.java
public class DisciplinaActivity extends Activity {	
	 private EditText nomeDisciplina; // ...nomeProfessor, email, nota1, nota2;	
	 protected void onCreate(Bundle savedInstanceState) {	
	 	 Button button = (Button) findViewById(R.id.botao);	
	 	 Intent intent = getIntent();	
	 	 disciplinaSelecionada = (Disciplina)
intent.getSerializableExtra("disciplinaSelecionada");	
	 	 if(disciplinaSelecionada!=null){	
	 	 	 button.setText("Alterar");	
	 	 	 nomeDisciplina.setText(disciplinaSelecionada.getDisciplina());	
	 	 }	 	 	
	 	 button.setOnClickListener(new OnClickListener() {	
	 	 	 public void onClick(View v) {	
	 	 	 	 Disciplina disciplina = new Disciplina();	
	 	 	 	 disciplina.setDisciplina(nomeDisciplina.getText().toString());	
/. . . 		 	 	 		 	 	 	 DisciplinaDAO dao = new DisciplinaDAO(DisciplinaActivity.this);	
	 	 	 	 if(disciplinaSelecionada == null){	
	 	 	 	 	 dao.salvar(disciplina);	
	 	 	 	 }else{		 	 	 	 	 disciplina.setId(disciplinaSelecionada.getId());	
	 	 	 	 	 dao.alterar(disciplina);	
	 	 	 	 }		 	 	 	 dao.close();		 	 	 	 finish();		 	 	 }	
	 	 });	
	 }	
}
DisciplinaActivity.java
public class DisciplinaDAO extends SQLiteOpenHelper {	
//...	
	 public void alterar(Disciplina disciplina) {	
	 	 ContentValues values = new ContentValues();	
	 	 values.put("disciplina", disciplina.getDisciplina());	
	 	 values.put("professor", disciplina.getProfessor());	
	 	 values.put("email", disciplina.getEmail());	
	 	 values.put("nota1", disciplina.getNota1());	
	 	 values.put("nota2", disciplina.getNota2());	
	 	 	
getWritableDatabase().update("Disciplinas", values,
"id=?", new String[]{disciplina.getId().toString()});		 	
	 }	
//...	
}
DisciplinaDAO.java
Run As..
Android application
public class ListaDisciplinas extends Activity {	
	 public void onCreateContextMenu(ContextMenu menu, View v,	
	 	 	 ContextMenuInfo menuInfo) {		 super.onCreateContextMenu(menu, v, menuInfo);	
//. . .	
	 	 MenuItem email = menu.add("Enviar E-mail");	
	 	 Intent intentEmail = new Intent(Intent.ACTION_SEND);	
	 	 intentEmail.setType("message/rfc822");	
	 	 intentEmail.putExtra(Intent.EXTRA_EMAIL,	
	 	 	 	 new String[] { "mariojp@gmail.com" });	
	 	 intentEmail.putExtra(Intent.EXTRA_SUBJECT, "ANDROID");	
	 	 intentEmail.putExtra(Intent.EXTRA_TEXT, "LEGAL!!!");	
	 	 email.setIntent(intentEmail);	//. . . 	
	 }	
}
ListaDisciplinas.java
Run As..
Android application
public class DisciplinaActivity extends Activity {	
	 	 	
protected void onCreate(Bundle savedInstanceState) {	
	 	 	
	 	 foto = (ImageView) findViewById(R.id.foto);	
	 	 	
	 	 foto.setOnClickListener(new OnClickListener() {	
	 	 	 	
!
	 	 	 @Override		 	 	 public void onClick(View v) {	
	 	 	 	 Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);	
	 	 	 	 	
	 	 	 	 caminho = Environment.getExternalStorageDirectory().toString()
+"/"+System.currentTimeMillis()+".png";	
	 	 	 	 	
	 	 	 	 File arquivo = new File(caminho);	
	 	 	 	 Uri localImage = Uri.fromFile(arquivo);	
	 	 	 	 camera.putExtra(MediaStore.EXTRA_OUTPUT, localImage);	
	 	 	 	 	
	 	 	 	 startActivityForResult(camera, 999);	
	 	 	 	 	 		 	 	 }	
	 	 });		
}	
}
DisciplinaActivity.java
public class DisciplinaActivity extends Activity {	
	 	 	
	 @Override	
	 protected void onActivityResult(int requestCode, int
resultCode, Intent data) {		 	 if(requestCode == 999){		 	 	 if(resultCode == Activity.RESULT_OK){	
	 	 	 	 Bitmap bitmap = BitmapFactory.decodeFile(caminho);	
	 	 Bitmap bitmapReduzido =Bitmap.createScaledBitmap(bitmap, 100, 100, true);	
	 	 	 	 foto.setImageBitmap(bitmapReduzido);	
	 	 	 }else{	
	 	 	 	 caminho =null;		 	 	 }	
	 	 	 	
	 	 }	
	 	 	 	
	 }	
}
DisciplinaActivity.java
<?xml version="1.0" encoding=“utf-8"?>	
<manifest ...>	
	 …	
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />	
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />	
	 … 	
</manifest>	
AndroidManifest.xml
Run As..
Android application
Esta obra está licenciada sob a licença Creative Commons
Atribuição-CompartilhaIgual 3.0 Não Adaptada. Para ver uma cópia
desta licença, visite http://creativecommons.org/licenses/by-sa/3.0/.
ANDROID
Mario Jorge Pereira
Como me encontrar?
http://www.mariojp.com.br
twitter.com/@mariojp
mariojp@gmail.com

Mini curso Android