Editando
Android
(sección)
Ir a la navegación
Ir a la búsqueda
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
===PDF Ejercicio=== <b>En el Layaout (parte gráfica)</b><br/> *El parámetro Id tiene el siguiente formato @+id/txtTarea **La @ indica al parser XML qué debe parsear y expandir el resto de la cadena e identificarla como recurso id **El símbolo + indica que el recurso es nuevo y que debe ser añadido a la clase R. <br/> *La clase R **Es autogenerada por Android y contiene todos los componentes gráficos y cadenas de texto global de la aplicación. **En Android no tenemos que hacer referencia a los ficheros de recursos mediante sus rutas. En lugar de ello, la clase R es la encargada de mantener automáticamente las referencias a estos recursos y su contenido. <br/> *Width y Height **match_parent: Indica que ocupe todo el ancho o alto de la vista padre. En este caso es el LinearLayout. **wrap_content: Indica que el ancho o alto debe ajustarse al contenido de éste. **fill_parent: Es el mismo que match_parent pero fue utilizado en versiones anteriores al API 8. <br/> *Fichero strings.xml **Cadena de texto de la app definidas en fichero aparte. **Al elemento se le indica el nombre de una variable (@string/<nombre_varialbe> que esta definida en el archivo src/main/res/values/strings.xml <br/> <b>En MainActivity (parte lógica)</b> *El método onCreate de la clase de nuestra app (que deriva de Activity) es el punto de entrada de nuestra Activity. <br/> *findViewById() es un método que enlaza un recurso de la interfaz de usuario de una aplicación, con una variable en nuestro código. O simplemente se encarga de acceder a ese recurso para cambiar una de sus propiedades. **Funciona de la siguiente forma <pre>EditText txtTarea = (EditText)findViewById(R.id.txtTarea);</pre> **Android Studio automaticamente hace el import necesario para poder utilizarlos en nuestra clase: <pre> import android.widget.Button; import android.widget.EditText; import android.widget.ListView; </pre> **Debemos hacer un casting porque el método findViewById() nos devuelve un objeto de la clase View. Esta es la clase de la que heredan todos los elementos gráficos de nuestras vistas. Por eso debemos indicarle específicamente qué tipo de objeto es. <br/> *Los objetos de la clase ArrayList almacenan Strings. <br/> *A través de un elemento denominado Adapter, Android nos facilita la tarea de enlazar estructuras de datos con elementos de nuestra vista. En este caso, utilizaremos un ArrayAdapter. **Nos sirve para mostrar los datos de una estructura conetenedora en una Vista de la interfaz <pre> ArrayList<String> allItems = new ArrayList<String>(); ArrayAdapter<String> allItemsAdapter; allItemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, allItems); lstItems.setAdapter(allItemsAdapter); </pre> <br/> *Para dar funcionalidad a un botón se puede hacer de dos formas **A través de la interfaz (todolist_activity.xml). Únicamente se puede gestionar ese evento: cuando el botón es pulsado. **A través de nuestra clase Java (TodoList_Activity.java) que controla la vista gráfica. **En nuestro ejemplo lo vamos a realizar en la clase Java añadiendo un escuchador de eventos a nuestro objeto de la clase Button. Éste estará a la escucha de todos los eventos que el usuario quiera realizar con ese objeto. Y dentro del Listener, le indicaremos qué debemos hacer si el botón es pulsado. **En la interfaz gráfica debemos añadir <pre> <Button androi:layout_width="match_parent" ... android:onclick="guardarTarea"/> </pre> **En la lógica se añade <pre> mBtnAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String tarea = txtTarea.getText().toString(); if (tarea.length() != 0) allItemsAdapter.add(tarea); } }); </pre> **Observarás que te obliga añadir el modificador final al objeto EditText y al ArrayAdapter, esto es debido a que Java nos obliga siempre y cuando sean utilizadas en un método sobrecargado dentro de otro. Utilizado para indicarle al compilador que esa entidad no podrá ser modificada más tarde.<br/> <br/> *Código final en MainActivity <pre> @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.todolist_activity); mEtTarea = (EditText)findViewById(R.id.txtTarea); mBtAdd = (Button)findViewById(R.id.btnAdd); mLvItems = (ListView)findViewById(R.id.listItem); ArrayList<String> allItems = new ArrayList<String>(); final ArrayAdapter<String> allItemsAdapter; allItemsAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, allItems); mLvItems.setAdapter(allItemsAdapter); mBtAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String tarea = mEtTarea.getText().toString(); Date cDate = new Date(); String fDate = new SimpleDateFormat("dd-MM-yyyy").format(cDate); if(tarea.length() != 0){ allItemsAdapter.add(tarea+" @ "+fDate); } } }); } </pre>
Resumen:
Ten en cuenta que todas las contribuciones a Proyectos se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Proyectos:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Menú de navegación
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Espacios de nombres
Página
Discusión
español
Vistas
Leer
Editar
Ver historial
Más
Buscar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Páginas especiales
Herramientas
Lo que enlaza aquí
Cambios relacionados
Información de la página