SlideShare uma empresa Scribd logo
1 de 92
Baixar para ler offline
Android,
por onde começar ?
Android,
por onde comeCar ?
Mario Jorge Pereira
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
Desenvolvimento
Por onde começar?
http://developer.android.com
Run APP
Android application
manifests/ 

(AndroidManifest.xml)
java/ 

(código fonte: .java)
res/ 

(recursos: layouts,
strigs, icones …)
<RelativeLayout ...
android:layout_width=“match_parent”android:layout_height="match_parent" ...>
<TextView
android:text=“@string/hello_world"android:layout_width="wrap_content"android:layout_height="wrap_content" /></RelativeLayout>
activity_main.xml
<RelativeLayout ... >
<EditText
android:layout_width="match_parent"android:layout_height="30dp" />
<Button
android:layout_width="match_parent"android:layout_height="30dp" />
<TextView .../>
</RelativeLayout>
activity_main.xml
<LinearLayout ...
android:orientation="vertical" >
<EditText
android:layout_width="match_parent"android:layout_height="wrap_content" /><Button
android:text="@string/txtbotao"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextView
android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout>
activity_main.xml
<?xml version="1.0" encoding=“utf-8"?>
<resources>
<string name="app_name">Todo</string>
<string name="hello_world">Hello world!</string><string name="action_settings">Settings</string><string name=“txtbotao">Copiar</string></resources>
strings.xml
Activity
XMLpublic class OlaMundo extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ola_mundo);
}
}
package br.com.mariojp.todo;
import android.os.Bundle;import android.support.v7.app.ActionBarActivity;public class MainActivity extends ActionBarActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
}
...
}
MainActivity.java
/* 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
package br.com.mariojp.todo;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;import android.util.Log;
public class MainActivity extends ActionBarActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
Log.i("Rotulo","Mensagem");
}
}
MainActivity.java
Log.[nivel](“TAG”,“MENSAGEM”);
Log.v (Verbose)
Log.d (Debug)
Log.i (Info)
Log.w (Warning)
Log.e (Erro)
Log.wtf (...)
Log
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) { ... }protected void onStart() { ... }
protected void onResume() { ... }
protected void onRestart() { ... }
protected void onPause() { ... }
protected void onStop() { ... }
protected void onDestroy() { ... }
}
MainActivity.java
Run As..
Android application
...
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
Button botao = (Button) findViewById(?);
}
...
MainActivity.java
<LinearLayout ... >
<EditText
android:id="@+id/campo"... />
<Button
android:id="@+id/botao"android:text="@string/txtbotao"android:layout_width="match_parent"android:layout_height="wrap_content" /><TextView
android:id=“@+id/rotulo"... />
</LinearLayout>
activity_main.xml
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);
Button botao = (Button) findViewById(R.id.botao);}
...
MainActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button botao = (Button) findViewById(R.id.botao);
botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {Log.i("TODO","Clicou o Botao");}
});
}
...
MainActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button botao = (Button) findViewById(R.id.botao);
final EditText campo = (EditText) findViewById(R.id.campo);
final TextView rotulo = (TextView) findViewById(R.id.rotulo);
botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {rotulo.setText(campo.getText());}
});
}
...
MainActivity.java
Run As..
Android application
public class ListActivity extends ActionBarActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.?);
}
}
ListActivity.java
<LinearLayout ... >
<ListView
android:id="@+id/lista"android:layout_width="match_parent"android:layout_height="match_parent">
</ListView>
</LinearLayout>
activity_list.xml
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_list);
ListView lista = (ListView) findViewById(R.id.lista);
}
...
ListActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);setContentView(R.layout.activity_list);
ListView lista = (ListView) findViewById(R.id.lista);
String[] dados = new String[]{"IR A ERBASE”,"ESTUDAR PARA PROVA","COMPRAR CADERNO”};ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this, android.R.layout.simple_list_item_1, dados);lista.setAdapter(adapter);
}
...
ListActivity.java
Run As..
Android application
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="br.com.mariojp.todo" >
<application ... >
<activity android:name=“.MainActivity" android:label="Todo" >
</activity>
<activity android:name=".ListActivity" android:label="Todo" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
AndroidManifest.xml
Run As..
Android application
...
lista.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long id){
Toast.makeText(ListActivity.this,"Posicao "+ position,Toast.LENGTH_SHORT).show();
}
});
...
ListActivity.java
Run As..
Android application
...
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view, int position,
long id) {
Toast.makeText(ListActivity.this,adapter.getItemAtPosition(position).toString(),
Toast.LENGTH_SHORT).show();return false;
}
});
...
ListActivity.java
Run As..
Android application
...
lista.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int position, long id){
Intent intent = new Intent(ListActivity.this,MainActivity.class);
startActivity(intent);
}
});
...
ListActivity.java
Run As..
Android application
<LinearLayout ...
android:orientation="vertical" >
<TextView
android:id=“@+id/rotulo”...
/>
<Button
android:id=“@+id/botao”...
/>
</LinearLayout>
activity_main.xml
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button botao = (Button) findViewById(R.id.botao);
final TextView rotulo = (TextView) findViewById(R.id.rotulo);
botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {finish();
}
});
}
...
MainActivity.java
<?xml version="1.0" encoding=“utf-8"?>
<resources>
<string name="app_name">Todo</string>
<string name="hello_world">Hello world!</string><string name="action_settings">Settings</string><string name=“txtbotao">Voltar</string></resources>
strings.xml
...
lista.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int posicao, long id){
Intent intent = new Intent(ListActivity.this, MainActivity.class);
String valor = adapter.getItemAtPosition(posicao).toString();
intent.putExtra("tarefa", valor);startActivity(intent);}
});
...
ListActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button botao = (Button) findViewById(R.id.botao);
TextView rotulo = (TextView) findViewById(R.id.rotulo);Intent intent = getIntent();String valor = (String) intent.getSerializableExtra("tarefa");
rotulo.setText(valor);
botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {finish();
}
});
}
...
MainActivity.java
...
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_list, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();if (id == R.id.action_settings) {return true;
}
return super.onOptionsItemSelected(item);
}
...
ListActivity.java
<menu
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".ListActivity" >
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"app:showAsAction="never" />
</menu>
menu_list.xml
<menu ...>
<item android:id="@+id/action_settings"
... />
<item android:id="@+id/action_nova"android:title="Nova"android:orderInCategory="100"app:showAsAction="always" />
</menu>
menu_list.xml
...
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();switch (id){
case R.id.action_settings:Toast.makeText(this,"OPCOES",Toast.LENGTH_SHORT).show();
return true;
case R.id.action_nova:Toast.makeText(this,"NOVA",Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
...
ListActivity.java
<menu ...>
<item
android:id="@+id/editar"android:orderInCategory="100"android:title="Editar"/>
<item
android:id="@+id/excluir"android:orderInCategory="100"android:title="Excluir"/>
</menu>
context_menu.xml
...
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_menu, menu);}
...
ListActivity.java
...
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {case R.id.editar:
Toast.makeText(this,"EDITAR",Toast.LENGTH_SHORT).show();
return true;
case R.id.excluir:
Toast.makeText(this,"EXLUIR",Toast.LENGTH_SHORT).show();
return true;
default:
return super.onContextItemSelected(item);
}
}
...
ListActivity.java
public class Tarefa {
private Long id;
private String titulo;
//get's e set's
}
Tarefa.java
<LinearLayout ...>
<TextView android:text="Tarefa"... />
<EditText
android:id="@+id/titulo"... />
<Button
android:id="@+id/botao"android:text="Salvar"android:onClick=“salvar"... />
</LinearLayout>
activity_cadastro.xml
...
public void salvar(View view){Tarefa tarefa = new Tarefa();tarefa.setTitulo(titulo.getText().toString());
Toast.makeText(this,”Tarefa OK!",Toast.LENGTH_SHORT );
}
...
CadastroActivity.java
Run As..
Android application
Banco de dados
public class TarefaDAO extends SQLiteOpenHelper {private static final String DB_NAME = "tarefa.db";
private static final int DB_VERSION = 1;
public TarefaDAO(Context context) {super(context, DB_NAME, null, DB_VERSION);}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVer, int newVer) {
}
}
TarefaDAO.java
...
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE TAREFAS (id INTEGER PRIMARY KEY,
titulo TEXT UNIQUE NOT NULL);");}
public void insere(Tarefa tarefa) {ContentValues valores = new ContentValues();
valores.put("titulo", tarefa.getTitulo());
getWritableDatabase().insert("TAREFAS", null, valores);
}
...
TarefaDAO.java
...
public List<Tarefa> listar() {List<Tarefa> tarefas = new ArrayList<Tarefa>();
Cursor cursor = getReadableDatabase().query("TAREFAS", null, null,
null, null, null, null);while (cursor.moveToNext()) {Tarefa tarefa = new Tarefa();tarefa.setId(cursor.getLong(cursor.getColumnIndex("id")));
String titulo = cursor.getString(cursor.getColumnIndex(“titulo"));
tarefa.setTitulo(titulo);tarefas.add(tarefa);}
return tarefas;
}
...
TarefaDAO.java
...
private ListView lista;...
@Override
protected void onCreate(Bundle savedInstanceState) {
lista = (ListView) findViewById(R.id.lista);
TarefaDAO dao = new TarefaDAO(this);List<Tarefa> dados = dao.listar();int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Tarefa> adapter =new ArrayAdapter<Tarefa>(this,layout, dados);
lista.setAdapter(adapter);
}
...
ListActivity.java
...
private ListView lista;...
@Override
protected void onResume() {super.onResume()
lista = (ListView) findViewById(R.id.lista);
TarefaDAO dao = new TarefaDAO(this);List<Tarefa> dados = dao.listar();int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Tarefa> adapter =new ArrayAdapter<Tarefa>(this,layout, dados);
lista.setAdapter(adapter);}
...
ListActivity.java
public class Tarefa implements Serializable {
...
}
Tarefa.java
...
lista.setOnItemClickListener(new AdapterView.OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> adapter, View view,
int posicao, long id){
Intent intent = new Intent(ListActivity.this, MainActivity.class);
Tarefa valor = (Tarefa) adapter.getItemAtPosition(posicao);
intent.putExtra("tarefa", valor);startActivity(intent);}
});
...
ListActivity.java
...
@Override
protected void onCreate(Bundle savedInstanceState) {
...
Button botao = (Button) findViewById(R.id.botao);
TextView rotulo = (TextView) findViewById(R.id.rotulo);Intent intent = getIntent();Tarefa tarefa = (Tarefa) intent.getSerializableExtra("tarefa");
rotulo.setText(tarefa.getTitulo);
botao.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {finish();
}
});
}
...
MainActivity.java
...
public void deletar(Tarefa tarefa) {String[] args = {tarefa.getId().toString()};
getWritableDatabase().delete("TAREFAS", "id=?", args);
}
...
TarefaDAO.java
...
private Tarefa self = null;...
lista.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapter, View view, int position,
long id) {
sel = (Tarefa) adapter.getItemAtPosition(posicao);
return false;
}
});
...
ListActivity.java
...
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {case R.id.editar:
Toast.makeText(this,"EDITAR",Toast.LENGTH_SHORT).show();
return true;
case R.id.excluir:
TarefaDAO dao = new TarefaDAO(this);
dao.deletar(tarefaSelecionada);return true;
default:
return super.onContextItemSelected(item);
}
}
...
ListActivity.java
...
@Override
protected void carregaLista() {lista = (ListView) findViewById(R.id.lista);
TarefaDAO dao = new TarefaDAO(this);List<Tarefa> dados = dao.listar();int layout = android.R.layout.simple_list_item_1;
ArrayAdapter<Tarefa> adapter =new ArrayAdapter<Tarefa>(this,layout, dados);
lista.setAdapter(adapter);}
...
ListActivity.java
...
@Override
protected void onResume() {super.onResume()
this.carregaLista();}
...
ListActivity.java
...
@Override
public boolean onContextItemSelected(MenuItem item) {
switch (item.getItemId()) {case R.id.editar:
Toast.makeText(this,"EDITAR",Toast.LENGTH_SHORT).show();
return true;
case R.id.excluir:
TarefaDAO dao = new TarefaDAO(this);
dao.deletar(tarefaSelecionada);this.carregaLista();return true;
default:
return super.onContextItemSelected(item);
}
}
...
ListActivity.java
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

Mais conteúdo relacionado

Mais procurados

The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningschicagonewsyesterday
 
Mad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningsMad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningschicagonewsonlineradio
 
https://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tshttps://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tsArif Alexi
 
Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin
 
Tinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on SundayTinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on Sundaychicagonewsyesterday
 
Embracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfEmbracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfMorgan Cheng
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playchicagonewsyesterday
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Robert DeLuca
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recapfurusin
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineTai Lun Tseng
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Fafadia Tech
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android WearPeter Friese
 
Combining Graphical and Textual
Combining Graphical and TextualCombining Graphical and Textual
Combining Graphical and TextualDr. Jan Köhnlein
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzlesDanny Preussler
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shemaMurat Gülci
 

Mais procurados (19)

The rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screeningsThe rise and fall of a techno DJ, plus more new reviews and notable screenings
The rise and fall of a techno DJ, plus more new reviews and notable screenings
 
Mad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screeningsMad Max is back, plus the rest of our new reviews and notable screenings
Mad Max is back, plus the rest of our new reviews and notable screenings
 
https://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=tshttps://www.facebook.com/valdyna.monna?fref=ts
https://www.facebook.com/valdyna.monna?fref=ts
 
Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8Xamarin: Introduction to iOS 8
Xamarin: Introduction to iOS 8
 
Tinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on SundayTinkerbelles return home from their Guinness world-record attempt on Sunday
Tinkerbelles return home from their Guinness world-record attempt on Sunday
 
Embracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend PerfEmbracing YUI3 and Frontend Perf
Embracing YUI3 and Frontend Perf
 
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than playRushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
Rushed to Victory Gardens' stage, An Issue of Blood is more effusion than play
 
Send.php
Send.phpSend.php
Send.php
 
Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React Crossing platforms with JavaScript & React
Crossing platforms with JavaScript & React
 
Discontinuing Reader Matches
Discontinuing Reader MatchesDiscontinuing Reader Matches
Discontinuing Reader Matches
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recap
 
MVVM with SwiftUI and Combine
MVVM with SwiftUI and CombineMVVM with SwiftUI and Combine
MVVM with SwiftUI and Combine
 
Jquery
JqueryJquery
Jquery
 
Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)Introduction To Google Android (Ft Rohan Bomle)
Introduction To Google Android (Ft Rohan Bomle)
 
Introduction to Android Wear
Introduction to Android WearIntroduction to Android Wear
Introduction to Android Wear
 
Combining Graphical and Textual
Combining Graphical and TextualCombining Graphical and Textual
Combining Graphical and Textual
 
More android code puzzles
More android code puzzlesMore android code puzzles
More android code puzzles
 
Oracle helpdesk database shema
Oracle helpdesk database shemaOracle helpdesk database shema
Oracle helpdesk database shema
 
Android App Dev Manual-1.doc
Android App Dev Manual-1.docAndroid App Dev Manual-1.doc
Android App Dev Manual-1.doc
 

Destaque (7)

Mini curso Android
Mini curso AndroidMini curso Android
Mini curso Android
 
BI
BIBI
BI
 
Html
HtmlHtml
Html
 
Android, por onde começar?
Android, por onde começar?Android, por onde começar?
Android, por onde começar?
 
Java www
Java wwwJava www
Java www
 
Labs Jogos Java
Labs Jogos JavaLabs Jogos Java
Labs Jogos Java
 
HTTP
HTTPHTTP
HTTP
 

Semelhante a Getting Started with Android Development

Android app development basics
Android app development basicsAndroid app development basics
Android app development basicsAnton Narusberg
 
Data binding 入門淺談
Data binding 入門淺談Data binding 入門淺談
Data binding 入門淺談awonwon
 
Saindo da zona de conforto… resolvi aprender android
Saindo da zona de conforto… resolvi aprender androidSaindo da zona de conforto… resolvi aprender android
Saindo da zona de conforto… resolvi aprender androidDaniel Baccin
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesMichael Galpin
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?Brenda Cook
 
Android tutorials8 todo_list
Android tutorials8 todo_listAndroid tutorials8 todo_list
Android tutorials8 todo_listVlad Kolesnyk
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in AndroidRobert Cooper
 
Infinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
Infinum Android Talks #16 - How to shoot your self in the foot by Dino KovacInfinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
Infinum Android Talks #16 - How to shoot your self in the foot by Dino KovacInfinum
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Yuji Hato
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android AppsGil Irizarry
 
07_UIAndroid.pdf
07_UIAndroid.pdf07_UIAndroid.pdf
07_UIAndroid.pdfImranS18
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsAhsanul Karim
 
android level 3
android level 3android level 3
android level 3DevMix
 
SE2016 Android Mikle Anokhin "Speed up application development with data bind...
SE2016 Android Mikle Anokhin "Speed up application development with data bind...SE2016 Android Mikle Anokhin "Speed up application development with data bind...
SE2016 Android Mikle Anokhin "Speed up application development with data bind...Inhacking
 
View groups containers
View groups containersView groups containers
View groups containersMani Selvaraj
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Eliran Eliassy
 

Semelhante a Getting Started with Android Development (20)

List adapter with multiple objects
List adapter with multiple objectsList adapter with multiple objects
List adapter with multiple objects
 
Android app development basics
Android app development basicsAndroid app development basics
Android app development basics
 
Data binding 入門淺談
Data binding 入門淺談Data binding 入門淺談
Data binding 入門淺談
 
Saindo da zona de conforto… resolvi aprender android
Saindo da zona de conforto… resolvi aprender androidSaindo da zona de conforto… resolvi aprender android
Saindo da zona de conforto… resolvi aprender android
 
Design Patterns for Tablets and Smartphones
Design Patterns for Tablets and SmartphonesDesign Patterns for Tablets and Smartphones
Design Patterns for Tablets and Smartphones
 
Android 3
Android 3Android 3
Android 3
 
Fragments: Why, How, What For?
Fragments: Why, How, What For?Fragments: Why, How, What For?
Fragments: Why, How, What For?
 
Android tutorials8 todo_list
Android tutorials8 todo_listAndroid tutorials8 todo_list
Android tutorials8 todo_list
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
Infinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
Infinum Android Talks #16 - How to shoot your self in the foot by Dino KovacInfinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
Infinum Android Talks #16 - How to shoot your self in the foot by Dino Kovac
 
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ - Adaptive UI  - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
Adaptive UI - 解像度の異なるデバイスや画面の向きに対応する 最適なレイアウトへ -
 
Beginning Native Android Apps
Beginning Native Android AppsBeginning Native Android Apps
Beginning Native Android Apps
 
07_UIAndroid.pdf
07_UIAndroid.pdf07_UIAndroid.pdf
07_UIAndroid.pdf
 
Tutorial basicapp
Tutorial basicappTutorial basicapp
Tutorial basicapp
 
List view2
List view2List view2
List view2
 
Day 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViewsDay 8: Dealing with Lists and ListViews
Day 8: Dealing with Lists and ListViews
 
android level 3
android level 3android level 3
android level 3
 
SE2016 Android Mikle Anokhin "Speed up application development with data bind...
SE2016 Android Mikle Anokhin "Speed up application development with data bind...SE2016 Android Mikle Anokhin "Speed up application development with data bind...
SE2016 Android Mikle Anokhin "Speed up application development with data bind...
 
View groups containers
View groups containersView groups containers
View groups containers
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics
 

Mais de Mario Jorge Pereira (19)

Educacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial GenerativaEducacao e Inteligencia Artificial Generativa
Educacao e Inteligencia Artificial Generativa
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
Guia rapido java v2
Guia rapido java v2Guia rapido java v2
Guia rapido java v2
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
Java Nuvem Appengine
Java Nuvem AppengineJava Nuvem Appengine
Java Nuvem Appengine
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...Hands-On Java web passando por  Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
Hands-On Java web passando por Servlets, JSP, JSTL, JDBC, Hibernate, DAO, MV...
 
Android e Cloud Computing
Android e Cloud ComputingAndroid e Cloud Computing
Android e Cloud Computing
 
Threads
ThreadsThreads
Threads
 
RMI (Remote Method Invocation)
RMI (Remote Method Invocation) RMI (Remote Method Invocation)
RMI (Remote Method Invocation)
 
Socket
SocketSocket
Socket
 
Java e Cloud Computing
Java e Cloud ComputingJava e Cloud Computing
Java e Cloud Computing
 
GUI - Eventos
GUI - EventosGUI - Eventos
GUI - Eventos
 
GUI Aplicações Gráficas
GUI Aplicações Gráficas GUI Aplicações Gráficas
GUI Aplicações Gráficas
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Erros comuns em java
Erros comuns em javaErros comuns em java
Erros comuns em java
 
Introdução ao java Alo Mundo
Introdução ao java Alo MundoIntrodução ao java Alo Mundo
Introdução ao java Alo Mundo
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Java Coleções
Java ColeçõesJava Coleções
Java Coleções
 

Último

CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceanilsa9823
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPsychicRuben LoveSpells
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRnishacall1
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7Pooja Nehwal
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Pooja Nehwal
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceDelhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceanilsa9823
 

Último (7)

CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual serviceCALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
CALL ON ➥8923113531 🔝Call Girls Saharaganj Lucknow best sexual service
 
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost LoverPowerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
Powerful Love Spells in Arkansas, AR (310) 882-6330 Bring Back Lost Lover
 
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCRFULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
FULL ENJOY - 9999218229 Call Girls in {Mahipalpur}| Delhi NCR
 
9892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x79892124323 | Book Call Girls in Juhu and escort services 24x7
9892124323 | Book Call Girls in Juhu and escort services 24x7
 
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
Call US Pooja 9892124323 ✓Call Girls In Mira Road ( Mumbai ) secure service,
 
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort ServiceBDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
BDSM⚡Call Girls in Sector 71 Noida Escorts >༒8448380779 Escort Service
 
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun serviceCALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
CALL ON ➥8923113531 🔝Call Girls Gomti Nagar Lucknow best Night Fun service
 

Getting Started with Android Development