Your SlideShare is downloading. ×
0
Clase	  1/2	  
¡  Introduccion	  ¡  Herramientas	  ¡  Hola	  Mundo	  ¡  Interfaces	  de	  Usuario	  ¡  Views,	  Layouts,	  Adapters	...
¡  Sistema	  Operativo	  Movil	  	  ¡  Basado	  en	  Linux	  ¡  Open	  Handset	  Alliance	  ¡  Google	  principal	  em...
¡  Java	  JDK	  1.6+	  ¡  IDE	  Eclipse	  	  ¡  Android	  SDK	  ¡  AVD	  Manager	  ¡  Android	  Development	  Tools	  
public class HolaMundoActivity extends Activity {	      @Override	      public void onCreate(Bundle savedInstanceState) {	...
¡  View,	  ViewGroup,	  Layout,	  Adapter	  ¡  Intent,	  Action,	  Activity	  ¡  Toast,	  Dialog	  ¡  Options,	  Conte...
¡  Definir	  todas	  nuestras	  interfaces	  en	  XML.	     §  Layouts,	  Colores,	  Fondos,	  Menús,	  Textos,	  Estados...
¡  Linear	  Layout	  ¡  Vertical	  Layout	  ¡  Relative	  Layout	  ¡  Table	  Layout	  ¡  ScrollView	  ¡  Etc….	  
¡  Drawables	     §  Imágenes,	  Selectores,	  Colores,	  9	  -­‐	  Patch	  ¡  Texto,	  Arreglos	  de	  Texto	  ¡  Sel...
<?xml version="1.0" encoding="utf-8"?>	<resources>	    <color name="primario">#007dff</color>	    <color name="secundario"...
<?xml version="1.0" encoding="utf-8"?>	<resources>	    <string-array name="sexos">	        <item >Masculino</item>	       ...
<?xml version="1.0" encoding="utf-8"?>	<menu xmlns:android="http://schemas.android.com/apk/res/android" >	    <item androi...
¡  AdapterView:	  Elemento	  ViewGroup	  cuyas	       Views	  internas	  estan	  definidas	  por	  un	  Adapter	   ¡  Ada...
¡  La	  mejor	  forma	  de	  mostrar	  listas	  de	  datos.	  ¡  Componente	  ListView	  ¡  Crearemos	  un	  ListAdapte...
<?xml version="1.0" encoding="utf-8"?>	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	      andr...
public class MiListaAdapter implements ListAdapter {		      	private Context context;	      	private String[] strings;		  ...
@Override	    	public int getItemViewType(int arg0) {	    	      	return 0;	    	}	    		    	@Override	    	public View g...
@Override	        	public void registerDataSetObserver(DataSetObserver arg0) {	        	      		        	}		        	@Over...
¡  Es	  una	  API	  para	  instanciar	  individualmente	      los	  layouts	  ¡  Podemos	  crear	  Items	  de	  listas	 ...
<?xml version="1.0" encoding="utf-8"?>	<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"	    androi...
@Override	public View getView(int arg0, View arg1, ViewGroup arg2) {	        	LayoutInflater inflater = (LayoutInflater)co...
¡  También	  definidos	  como	  Recursos	  XML	  ¡  Menús	  de	  Opciones	  y	  Contextuales	  
@Override	public boolean onCreateOptionsMenu(Menu menu) {	      	MenuInflater inflater = getMenuInflater();	      	inflate...
¡  Registrar	  para	  el	  Long	  Click	  ¡  Discriminar	  por	  ID	  de	  View	  
registerForContextMenu(lista);		@Override	public void onCreateContextMenu(ContextMenu menu, View v,	        	ContextMenuIn...
¡  Activity	  son	  la	  base	  de	  las	  Interfaces	  de	      Usuario.	  ¡  Estas	  pueden	  apilarse.	  	  ¡  Al	  ...
startActivity(new Intent(this, MensajeActivity.class));			startActivityForResult(	      	new Intent(this, MensajeActivity....
¡  Permite	  definir	  cuales	  Activities	  puedes	  ser	      llamadas	  para	  realizar	  una	  operación.	  ¡  Permit...
private static final int REQUEST_FROM_CAMERA = 0;	      			Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);	st...
¡  Toast	  es	  un	  mensaje	  mostrado	  en	  la	  parte	    inferior	  de	  la	  pantalla	  sobre	  todo	  el	  conteni...
Toast.makeText(this, "Hola Mundo", 2000).show();		AlertDialog ad = new AlertDialog.Builder(this)	        	.setTitle("Alert...
AlertDialog.Builder alert = new AlertDialog.Builder(this);		alert.setTitle("Configuracion");	alert.setMessage("Server URL"...
Clase 1 Programacion Android
Clase 1 Programacion Android
Clase 1 Programacion Android
Upcoming SlideShare
Loading in...5
×

Clase 1 Programacion Android

1,035

Published on

Clase 1 de 2
Curso de Programacion Android
TechTraining
Ecuador

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,035
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
46
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Clase 1 Programacion Android"

  1. 1. Clase  1/2  
  2. 2. ¡  Introduccion  ¡  Herramientas  ¡  Hola  Mundo  ¡  Interfaces  de  Usuario  ¡  Views,  Layouts,  Adapters  ¡  Intents,  Actions  ¡  Toast,  Dialogs,  Status  Bar  ¡   Options,  Context  Menu  
  3. 3. ¡  Sistema  Operativo  Movil    ¡  Basado  en  Linux  ¡  Open  Handset  Alliance  ¡  Google  principal  empresa  detrás  de  su   desarrollo.  ¡  +50%  cuota  mercado  mundial  smartphones    
  4. 4. ¡  Java  JDK  1.6+  ¡  IDE  Eclipse    ¡  Android  SDK  ¡  AVD  Manager  ¡  Android  Development  Tools  
  5. 5. 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>  
  6. 6. ¡  View,  ViewGroup,  Layout,  Adapter  ¡  Intent,  Action,  Activity  ¡  Toast,  Dialog  ¡  Options,  Context  Menu  
  7. 7. ¡  Definir  todas  nuestras  interfaces  en  XML.   §  Layouts,  Colores,  Fondos,  Menús,  Textos,  Estados  ¡  Enlazarlo  en  el  código  
  8. 8. ¡  Linear  Layout  ¡  Vertical  Layout  ¡  Relative  Layout  ¡  Table  Layout  ¡  ScrollView  ¡  Etc….  
  9. 9. ¡  Drawables   §  Imágenes,  Selectores,  Colores,  9  -­‐  Patch  ¡  Texto,  Arreglos  de  Texto  ¡  Selectores  ¡  Menús  
  10. 10. <?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>  
  11. 11. <?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>  
  12. 12. <?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>  
  13. 13. ¡  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);  
  14. 14. ¡  La  mejor  forma  de  mostrar  listas  de  datos.  ¡  Componente  ListView  ¡  Crearemos  un  ListAdapter  personalizado  
  15. 15. <?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"})); } }  
  16. 16. 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; }  
  17. 17. @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; }  
  18. 18. @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; } }  
  19. 19. ¡  Es  una  API  para  instanciar  individualmente   los  layouts  ¡  Podemos  crear  Items  de  listas  a  nuestra   medida  
  20. 20. <?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>  
  21. 21. @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; }  
  22. 22. ¡  También  definidos  como  Recursos  XML  ¡  Menús  de  Opciones  y  Contextuales  
  23. 23. @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; }  
  24. 24. ¡  Registrar  para  el  Long  Click  ¡  Discriminar  por  ID  de  View  
  25. 25. 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; }  
  26. 26. ¡  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.  
  27. 27. startActivity(new Intent(this, MensajeActivity.class)); startActivityForResult( new Intent(this, MensajeActivity.class), 13); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { // ... }  
  28. 28. ¡  Permite  definir  cuales  Activities  puedes  ser   llamadas  para  realizar  una  operación.  ¡  Permite  integración  entre  aplicaciones.  ¡  Incluso  intra-­‐aplicación.  
  29. 29. 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); } } }  
  30. 30. ¡  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.  
  31. 31. 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();
  32. 32. 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();  
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×