mobile conf erich
TRANSCRIPT
Erich Egert
encontre-me:@erichegt
github.com/erichegt
Instrutor e desenvolvedor pela Caelum
Friday, April 5, 13
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
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) { // ... }
Quem roda?
Friday, April 5, 13
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) { // ... }
UIThread
Friday, April 5, 13
AsyncTask
UIThread
Thread(tarefa pesada)
onPreExecute
doInBackground
UIThread onPostExecute
Friday, April 5, 13
AsyncTask
UIThread
Thread(tarefa pesada)
onPreExecute
doInBackground
UIThread onPostExecute
Friday, April 5, 13
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
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);
UIThread
Friday, April 5, 13
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);
UIThread
Friday, April 5, 13
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
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);
quemMeChamou.lidaComResultado(result);}
//... Delegate
Ipublic class BuscaCarrosTask( quemMeChamou) {..,}
Friday, April 5, 13
public void onItemClick(...) { Carro carro = result.get(posicao);
Intent irParaDetalhes = new Intent(this,DetalhesActivity.class); irParaDetalhes.putExtra("carroSelecionado",carro); }
Activity 1
Activity 2protected 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
public void onItemClick(...) { Carro carro = result.get(posicao);
Intent irParaDetalhes = new Intent(this,DetalhesActivity.class); irParaDetalhes.putExtra("carroSelecionado",carro); }
Activity 1
Activity 2protected void onCreate(Bundle savedInstanceState) { TextView modelo = (TextView) findViewById(R.id.modelo); Carro carroSelecionado = (Carro) getIntent() .getSerializableExtra("carroSelecionado"); if (carroSelecionado != null) { modelo.setText(carroSelecionado.getModelo());
“carroSelecionado”
Friday, April 5, 13
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
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
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
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); } }}
I
Friday, April 5, 13
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); } }}
I
Friday, April 5, 13
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
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);
}}
OU
Friday, April 5, 13
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);
}}
OU
OU
Friday, April 5, 13
<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>
AndroidManifest
Friday, April 5, 13
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