Contenu connexe Similaire à Mobile conf erich (20) Mobile conf erich2. à vista
10% OFF!
Friday, April 5, 13
4. Erich Egert
Instrutor e desenvolvedor pela Caelum
encontre-me:
@erichegt
github.com/erichegt
Friday, April 5, 13
10. public class ListagemActivity extends Activity {
//...
@Override
protected void onCreate(Bundle bundle) {
//...
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(endereco);
HttpResponse resp = httpclient.execute(httpGet);
String jsonCarros =
EntityUtils.toString(resp.getEntity());
// colocar no ListView
} catch (Exception e) {
// ...
}
Friday, April 5, 13
11. public class ListagemActivity extends Activity {
//...
@Override
protected void onCreate(Bundle bundle) {
//...
Quem roda?
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(endereco);
HttpResponse resp = httpclient.execute(httpGet);
String jsonCarros =
EntityUtils.toString(resp.getEntity());
// colocar no ListView
} catch (Exception e) {
// ...
}
Friday, April 5, 13
12. public class ListagemActivity extends Activity {
//...
UIThread
@Override
protected void onCreate(Bundle bundle) {
//...
try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(endereco);
HttpResponse resp = httpclient.execute(httpGet);
String jsonCarros =
EntityUtils.toString(resp.getEntity());
// colocar no ListView
} catch (Exception e) {
// ...
}
Friday, April 5, 13
15. AsyncTask
UIThread
Thread
(tarefa pesada)
Friday, April 5, 13
16. JSON
e no fim da tarefa
pesada?
Friday, April 5, 13
17. Tela!
UIThread
Friday, April 5, 13
18. AsyncTask
UIThread onPreExecute
Thread doInBackground
(tarefa pesada)
UIThread onPostExecute
Friday, April 5, 13
19. AsyncTask
UIThread onPreExecute
Thread doInBackground
(tarefa pesada)
UIThread onPostExecute
Friday, April 5, 13
20. public class BuscaCarrosTask
extends AsyncTask<Void, Void, List<Carro>>{
//...
protected void onPostExecute(final List<Carro> result) {
ListView listaCarros = (...) activity.findViewById(...);
ArrayAdapter<Carro> adapter = new ArrayAdapter<Carro>(...);
listaCarros.setAdapter(adapter);
listaCarros.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(...) {
Carro carroSelecionado = result.get(posicao);
Friday, April 5, 13
21. public class BuscaCarrosTask
extends AsyncTask<Void, Void, List<Carro>>{
//...
protected void onPostExecute(final List<Carro> result) {
ListView listaCarros = (...) activity.findViewById(...);
ArrayAdapter<Carro> adapter = new ArrayAdapter<Carro>(...);
listaCarros.setAdapter(adapter);
UIThread
listaCarros.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(...) {
Carro carroSelecionado = result.get(posicao);
Friday, April 5, 13
22. public class BuscaCarrosTask
extends AsyncTask<Void, Void, List<Carro>>{
//...
protected void onPostExecute(final List<Carro> result) {
ListView listaCarros = (...) activity.findViewById(...);
ArrayAdapter<Carro> adapter = new ArrayAdapter<Carro>(...);
listaCarros.setAdapter(adapter);
UIThread
listaCarros.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(...) {
Carro carroSelecionado = result.get(posicao);
Friday, April 5, 13
26. Delegate
Activity
Friday, April 5, 13
27. Delegate
delega!
Activity
Friday, April 5, 13
28. Delegate
delega!
Activity AsyncTask
Friday, April 5, 13
29. Delegate
delega!
Activity AsyncTask
lida com resultado!
Friday, April 5, 13
30. public class BuscaCarrosTask
extends AsyncTask<Void, Void, List<Carro>>{
//...
protected void onPostExecute(final List<Carro> result) {
ListView listaCarros = (...) activity.findViewById(...);
ArrayAdapter<Carro> adapter = new ArrayAdapter<Carro>(...);
listaCarros.setAdapter(adapter);
listaCarros.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(...) {
Carro carroSelecionado = result.get(posicao);
Friday, April 5, 13
31. public class BuscaCarrosTask
extends AsyncTask<Void, Void, List<Carro>>{
//...
public class BuscaCarrosTask( I quemMeChamou) {..,}
protected void onPostExecute(final List<Carro> result) {
quemMeChamou.lidaComResultado(result);
ListView listaCarros = (...) activity.findViewById(...);
}
Delegate
ArrayAdapter<Carro> adapter = new ArrayAdapter<Carro>(...);
//...
listaCarros.setAdapter(adapter);
listaCarros.setOnItemClickListener(
new OnItemClickListener() {
public void onItemClick(...) {
Carro carroSelecionado = result.get(posicao);
Friday, April 5, 13
32. Tasks:
DELEGATE
Friday, April 5, 13
35. Intent
Activity
Friday, April 5, 13
36. Intent
Activity
Activity
Friday, April 5, 13
37. Intent
“apelido”
Activity
Activity
Friday, April 5, 13
38. public void onItemClick(...) {
Activity 1
Carro carro = result.get(posicao);
Intent irParaDetalhes = new Intent(this,DetalhesActivity.class);
irParaDetalhes.putExtra("carroSelecionado",carro);
}
Activity 2
protected void onCreate(Bundle savedInstanceState) {
TextView modelo = (TextView) findViewById(R.id.modelo);
Carro carroSelecionado = (Carro) getIntent()
.getSerializableExtra("carroSelecionado");
if (carroSelecionado != null) {
modelo.setText(carroSelecionado.getModelo());
Friday, April 5, 13
39. public void onItemClick(...) {
Activity 1
Carro carro = result.get(posicao);
Intent irParaDetalhes = new Intent(this,DetalhesActivity.class);
irParaDetalhes.putExtra("carroSelecionado",carro);
} “carroSelecionado”
Activity 2
protected void onCreate(Bundle savedInstanceState) {
TextView modelo = (TextView) findViewById(R.id.modelo);
Carro carroSelecionado = (Carro) getIntent()
.getSerializableExtra("carroSelecionado");
if (carroSelecionado != null) {
modelo.setText(carroSelecionado.getModelo());
Friday, April 5, 13
41. Intent
Activity
Friday, April 5, 13
42. Intent
Activity
Friday, April 5, 13
43. Intent
Activity
Friday, April 5, 13
44. Intent
Activity
Dalvik
Friday, April 5, 13
45. Intent
Activity
Dalvik
Dalvik
Friday, April 5, 13
56. Fragment
==
IF’s INFINITOS!
Friday, April 5, 13
57. protected void onCreate(Bundle savedInstanceState) {
//...
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
if (isTabletNaHorizontal()) {
transaction.replace(R.id.esquerda, new ListagemFragment());
transaction.replace(R.id.direita,
DetalhesFragment.fragmentComCarro(null));
} else {
transaction.replace(R.id.unico, new ListagemFragment());
}
transaction.commit();
}
Friday, April 5, 13
58. protected void onCreate(Bundle savedInstanceState) {
//...
FragmentManager manager = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
if (isTabletNaHorizontal()) {
transaction.replace(R.id.esquerda, new ListagemFragment());
transaction.replace(R.id.direita,
DetalhesFragment.fragmentComCarro(null));
} else {
transaction.replace(R.id.unico, new ListagemFragment());
}
transaction.commit();
}
Friday, April 5, 13
60. public class FabricaDeConteudo {
public static Conteudo getConteudo(CarrosActivity activity) {
boolean ehTabletNaHorizontal = activity.getResources()
.getBoolean(R.bool.ehTabletNaHorizontal);
if (ehTabletNaHorizontal) {
return new ConteudoTablet(activity);
} else {
return new ConteudoSmart(activity);
}
}
}
Friday, April 5, 13
61. I
public class FabricaDeConteudo {
public static Conteudo getConteudo(CarrosActivity activity) {
boolean ehTabletNaHorizontal = activity.getResources()
.getBoolean(R.bool.ehTabletNaHorizontal);
if (ehTabletNaHorizontal) {
return new ConteudoTablet(activity);
} else {
return new ConteudoSmart(activity);
}
}
}
Friday, April 5, 13
62. I
public class FabricaDeConteudo {
public static Conteudo getConteudo(CarrosActivity activity) {
boolean ehTabletNaHorizontal = activity.getResources()
.getBoolean(R.bool.ehTabletNaHorizontal);
if (ehTabletNaHorizontal) {
return new ConteudoTablet(activity);
} else {
return new ConteudoSmart(activity);
}
}
}
Friday, April 5, 13
63. public class CarrosActivity extends FragmentActivity {
private Conteudo conteudo;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
conteudo = FabricaDeConteudo.getConteudo(this);
}
public void lidaComSelecaoDo(Carro carroSelecionado) {
conteudo.lidaComSelecaoDo(carroSelecionado);
}
}
Friday, April 5, 13
64. public class CarrosActivity extends FragmentActivity {
private Conteudo conteudo;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
conteudo = FabricaDeConteudo.getConteudo(this);
OU
}
public void lidaComSelecaoDo(Carro carroSelecionado) {
conteudo.lidaComSelecaoDo(carroSelecionado);
}
}
Friday, April 5, 13
65. public class CarrosActivity extends FragmentActivity {
private Conteudo conteudo;
@Override
protected void onCreate(Bundle savedInstanceState) {
//...
conteudo = FabricaDeConteudo.getConteudo(this);
OU
}
public void lidaComSelecaoDo(Carro carroSelecionado) {
conteudo.lidaComSelecaoDo(carroSelecionado);
OU
}
}
Friday, April 5, 13
70. Adapter
AsyncTask
LayoutInflater
LocationManager
ExpandableListView
MapActivity
Friday, April 5, 13
72. busao SP
busao AC
Friday, April 5, 13
73. busao SP
busao AC
busao UK
Friday, April 5, 13
81. values colors.xml
background_geral
Friday, April 5, 13
82. values colors.xml
background_geral
values colors.xml
background_geral
Friday, April 5, 13
83. Reaproveitamento:
Project Libraries!
Flexibilidade:
Application Resources!
Friday, April 5, 13
87. Fragment
ajuda nesse caso?!?
Friday, April 5, 13
88. Fragment
ajuda nesse caso?!?
Friday, April 5, 13
89. Mas e a Activity?
Friday, April 5, 13
91. Na mesma App...
startActivity(this, UmaActivity.class );
Friday, April 5, 13
100. AndroidManifest
<activity
android:name=".MussumActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="localhost"
android:pathPattern="/acao/customizada/mussum"
android:scheme="busao" />
</intent-filter>
</activity>
Friday, April 5, 13
101. Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(
"busao://localhost/acao/customizada/"+
getResources().getString(
R.string.tag_intent_implicita)));
startActivity(i);
Friday, April 5, 13
104. OBRIGADO!
@erichegt
github.com/erichegt
Friday, April 5, 13