Clase 1 Programacion Android
Upcoming SlideShare
Loading in...5
×
 

Clase 1 Programacion Android

on

  • 1,235 views

Clase 1 de 2

Clase 1 de 2
Curso de Programacion Android
TechTraining
Ecuador

Statistics

Views

Total Views
1,235
Views on SlideShare
1,235
Embed Views
0

Actions

Likes
1
Downloads
38
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Clase 1 Programacion Android Clase 1 Programacion Android Presentation Transcript

  • Clase  1/2  
  • ¡  Introduccion  ¡  Herramientas  ¡  Hola  Mundo  ¡  Interfaces  de  Usuario  ¡  Views,  Layouts,  Adapters  ¡  Intents,  Actions  ¡  Toast,  Dialogs,  Status  Bar  ¡   Options,  Context  Menu  
  • ¡  Sistema  Operativo  Movil    ¡  Basado  en  Linux  ¡  Open  Handset  Alliance  ¡  Google  principal  empresa  detrás  de  su   desarrollo.  ¡  +50%  cuota  mercado  mundial  smartphones    
  • ¡  Java  JDK  1.6+  ¡  IDE  Eclipse    ¡  Android  SDK  ¡  AVD  Manager  ¡  Android  Development  Tools  
  • public class HolaMundoActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }  <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>  <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HolaMundoActivity!</string> <string name="app_name">HolaMundo</string> </resources>  
  • ¡  View,  ViewGroup,  Layout,  Adapter  ¡  Intent,  Action,  Activity  ¡  Toast,  Dialog  ¡  Options,  Context  Menu  
  • ¡  Definir  todas  nuestras  interfaces  en  XML.   §  Layouts,  Colores,  Fondos,  Menús,  Textos,  Estados  ¡  Enlazarlo  en  el  código  
  • ¡  Linear  Layout  ¡  Vertical  Layout  ¡  Relative  Layout  ¡  Table  Layout  ¡  ScrollView  ¡  Etc….  
  • ¡  Drawables   §  Imágenes,  Selectores,  Colores,  9  -­‐  Patch  ¡  Texto,  Arreglos  de  Texto  ¡  Selectores  ¡  Menús  
  • <?xml version="1.0" encoding="utf-8"?> <resources> <color name="primario">#007dff</color> <color name="secundario">#00237d</color> </resources> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:state_pressed="true" android:drawable="@color/primario"/> <item android:state_pressed="false" android:drawable="@color/secundario"/> </selector>  
  • <?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="sexos"> <item >Masculino</item> <item >Femenino</item> </string-array> </resources> <resources> <string name="hello">Hola Mundo Android!</string> <string name="app_name">HolaMundo</string> </resources>  
  • <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/opcion1" android:title="Opcion 1"></item> <item android:id="@+id/opcion2" android:title="Opcion 2"></item> </menu>  
  • ¡  AdapterView:  Elemento  ViewGroup  cuyas   Views  internas  estan  definidas  por  un  Adapter   ¡  Adapter:  Clase  que  define  Vistas  a  partir  de  un   estructura  de  Datos.   ¡  ArrayAdapter:  Spinners  ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource( android.R.layout.simple_spinner_dropdown_item); adapter.add(“Masculino"); adapter.add(“Femenino"); spinner.setAdapter(adapter);  
  • ¡  La  mejor  forma  de  mostrar  listas  de  datos.  ¡  Componente  ListView  ¡  Crearemos  un  ListAdapter  personalizado  
  • <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ListView android:id="@+id/lista" android:layout_width="fill_parent" android:layout_height="fill_parent"> </ListView> </LinearLayout> public class HolaMundoActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView lista = (ListView)findViewById(R.id.lista); lista.setAdapter(new MiListaAdapter(this, new String[] {"Juan", "Maria"})); } }  
  • public class MiListaAdapter implements ListAdapter { private Context context; private String[] strings; public MiListaAdapter(Context context, String[] strings) { this.context = context; this.strings = strings; } @Override public int getCount() { return strings.length; } @Override public Object getItem(int arg0) { return strings[arg0]; } @Override public long getItemId(int arg0) { return 0; }  
  • @Override public int getItemViewType(int arg0) { return 0; } @Override public View getView(int arg0, View arg1, ViewGroup arg2) { TextView c = new TextView(context); c.setText(strings[arg0]); return c; } @Override public int getViewTypeCount() { return 1; } @Override public boolean hasStableIds() { return false; } @Override public boolean isEmpty() { return strings.length==0; }  
  • @Override public void registerDataSetObserver(DataSetObserver arg0) { } @Override public void unregisterDataSetObserver(DataSetObserver arg0) { } @Override public boolean areAllItemsEnabled() { return true; } @Override public boolean isEnabled(int arg0) { return true; } }  
  • ¡  Es  una  API  para  instanciar  individualmente   los  layouts  ¡  Podemos  crear  Items  de  listas  a  nuestra   medida  
  • <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="40dp" android:background="#f0f0f0" android:orientation="vertical" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/secundario" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/primario" /> </LinearLayout>  
  • @Override public View getView(int arg0, View arg1, ViewGroup arg2) { LayoutInflater inflater = (LayoutInflater)context.getSystemService( Context.LAYOUT_INFLATER_SERVICE); View itemView = inflater.inflate(R.layout.item, null); TextView c = (TextView)itemView.findViewById(R.id.textView1); c.setText(strings[arg0]); TextView c2 = (TextView)itemView.findViewById(R.id.textView2); c2.setText(Integer.toString(strings[arg0].length())); return itemView; }  
  • ¡  También  definidos  como  Recursos  XML  ¡  Menús  de  Opciones  y  Contextuales  
  • @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.hola, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch(item.getItemId()) { case R.id.opcion1: { break; } case R.id.opcion2: { break; } } return true; }  
  • ¡  Registrar  para  el  Long  Click  ¡  Discriminar  por  ID  de  View  
  • registerForContextMenu(lista); @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { if (v.getId()==R.id.lista) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)menuInfo; String valor = (String)lista.getAdapter().getItem(info.position); menu.setHeaderTitle(valor); menu.add(Menu.NONE, 0, 0, "Ver Detalle"); menu.add(Menu.NONE, 1, 1, "Eliminar"); } }  @Override public boolean onContextItemSelected(MenuItem item) { AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); switch (item.getItemId()) { case 0: { // Hacer opcion 1 break; } } return true; }  
  • ¡  Activity  son  la  base  de  las  Interfaces  de   Usuario.  ¡  Estas  pueden  apilarse.    ¡  Al  cerrarse  la  ultima  se  cierra  la  Aplicación.  ¡  Son  llamadas  a  traves  de  Intents  ¡  Intent:  Descripcion  de  una  operación  a   realizarse.   §  Explicita  o  Implicita.   §  Acccion  y  Datos.  
  • startActivity(new Intent(this, MensajeActivity.class)); startActivityForResult( new Intent(this, MensajeActivity.class), 13); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // ... }  
  • ¡  Permite  definir  cuales  Activities  puedes  ser   llamadas  para  realizar  una  operación.  ¡  Permite  integración  entre  aplicaciones.  ¡  Incluso  intra-­‐aplicación.  
  • private static final int REQUEST_FROM_CAMERA = 0; Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(intent, REQUEST_FROM_CAMERA);  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode==REQUEST_FROM_CAMERA && resultCode==RESULT_OK) { Bitmap bmp = (Bitmap) data.getExtras().get("data"); ImageView imagen = (ImageView)findViewById(R.id.imagen); imagen.setImageBitmap(bmp); } } }  
  • ¡  Toast  es  un  mensaje  mostrado  en  la  parte   inferior  de  la  pantalla  sobre  todo  el  contenido   §  Texto  simple,  varios  segundos.  ¡  Dialog,  Permite  crear  diálogos  de  Progreso,   De  Pregunta  o  hasta  de  Introducir  Texto.  
  • Toast.makeText(this, "Hola Mundo", 2000).show(); AlertDialog ad = new AlertDialog.Builder(this) .setTitle("Alerta") .setMessage("Esta Seguro?") .setPositiveButton("Si", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .setNegativeButton("No", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }).create(); ad.show();
  • AlertDialog.Builder alert = new AlertDialog.Builder(this); alert.setTitle("Configuracion"); alert.setMessage("Server URL"); final EditText input = new EditText(this); input.setText(getServerURL()); alert.setView(input); alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { String value = input.getText().toString(); setServerURL(value); } }); alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { // Canceled. } }); alert.show();