Códigos de Ejemplo para Android

0% encontró este documento útil (0 votos)
83 vistas8 páginas
1) El documento presenta 9 códigos de ejemplo comunes para el desarrollo de aplicaciones Android. Estos incluyen cómo crear constantes, logs personalizados, controlar los botones de retroces…

Cargado por

Geov@

Inicio / Tecnología / Android: Códigos de ejemplo

Android: Códigos de ejemplo


Escrito por Rafa Morales el 13 Febrero 2017

 TECNOLOGÍA

A continuación podréis encontrar una serie de códigos de ejemplo que me han ido haciendo falta en mis proyectos de
desarrollo de aplicaciones móviles con Android. Espero que os sean de ayuda.

Para más información sobre el desarrollo Android:

Guía de referencia de desarrollo de aplicaciones móviles Android

1. Constantes
Podemos almacenar todas las constantes a utilizar en la aplicación dentro de una clase que luego utilicemos en el resto
de clases. Suele ser general escribir en nombre de la variable en mayúsculas.

public class Constants {


public static final float VIEWPORT_WIDTH = 5.0f;
public static final String REST_URL = "[Link]
}

2. Logs personalizados
Nos permite crear una clase propia que sea la que genere los logs de la aplicación. De esta manera, al pasarla a
producción sólo tendremos que deshabilitar.
public class MyLog {
// Cambiar a 'false' para deshabilitar el Log de la aplicación
static final boolean DEBUG = true;

public static void i(String tag, String string) {


if (DEBUG) [Link].i(tag, string);
}

public static void e(String tag, String string) {


if (DEBUG) [Link].e(tag, string);
}

public static void d(String tag, String string) {


if (DEBUG) [Link].d(tag, string);
}

public static void v(String tag, String string) {


if (DEBUG) [Link].v(tag, string);
}

public static void w(String tag, String string) {


if (DEBUG) [Link].w(tag, string);
}
}

3. Back Button
Para sobreescribir el funcionamiento del botón "Vovler atrás" podemos utilizar el siguiente código.

Fuera del método onCreate()...

@Override
public void onBackPressed() {
// Asignar la acción necesaria. En este caso terminar la actividad
finish();
}

4. Up Button
Para habilitar el botón Up dentro del Toolbar de una actividad necesitaremos el siguiente código o sobreescribir el
funcionamiento del mismo.

Dentro del método onCreate()...

Toolbar toolbar = (Toolbar) findViewById([Link]);


if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
getSupportActionBar().setTitle(getResources().getString([Link].app_name));
[Link](new [Link]() {
@Override
public void onClick(View v) {
// Asignar la acción necesaria. En este caso "volver atrás"
onBackPressed();
}
});
} else {
Log.d("SobreNosotros", "Error al cargar toolbar");
}
 

Fuera del método onCreate()...

@Override
public boolean onNavigateUp() {
// Asignar la acción necesaria. En este caso terminar la actividad
return true;
}

Pero si queremos realizarlo en PreferencesActivity tendremos que sobreescribir el siguiente método.

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = [Link]();

if (id == [Link]) {
startActivity(new Intent(this, [Link]));
return true;
}

return [Link](item);
}

5. Crear elementos gráficos desde código


Podemos crear los elementos grá cos de la aplicación desde el código, sin necesidad de crearlos en los layouts XML.
Tendremos que cargar el layout principal, que ese sí debe existir previamente y sobre él cargar los elementos.

setContentView([Link].activity_main);

// Hay que asignarle un ID al LinearLayout en XML, que por defecto no lo tiene


LinearLayout LinearMain = (LinearLayout) findViewById([Link]);

crearLayoutConImagen(LinearMain, [Link], "[Link]

 
void crearLayoutConImagen(LinearLayout ly, int res_img, String text){

// Parámetros a asignar al layout


[Link] params = new [Link](
[Link].WRAP_CONTENT,
[Link].WRAP_CONTENT);

// Crear layout contenedor


LinearLayout contenedor = new LinearLayout(new ContextThemeWrapper(this, [Link]));
[Link](params);
[Link]([Link]);

// Crear imagen
ImageView valueIV = new ImageView(new ContextThemeWrapper(this, [Link]));
[Link](res_img);

// Crear texto
TextView valueTV = new TextView(new ContextThemeWrapper(this, [Link]));
[Link]([Link]());
[Link](params);

// Añadir los elementos imagen y texto al layout contenedor


[Link](valueIV);
[Link](valueTV);

// Añadir layout contenedor al layout principal creado en XML de la Actividad


[Link](contenedor);
}

6. Tratar archivo con contenido JSON


Cómo descargar un chero JSON de Internet y posteriomente tratarlo para leer su contenido.
try {
// Hacer la conexión y leer el contenido línea a línea
URL url = new URL("[Link]
HttpURLConnection urlConnection = (HttpURLConnection) [Link]();

InputStream in = new BufferedInputStream([Link]());


BufferedReader reader = new BufferedReader(new InputStreamReader(in));

String line;
StringBuilder content = new StringBuilder();
while ((line = [Link]()) != null) {
[Link](line);
}

// Crear un objeto del contenido JSON completo


JSONObject jsoncompleto = new JSONObject([Link]());

// Comprobar si existe un elemento


if ([Link]("acontecimiento")) {
// Crear un objeto JSON a partir de dicho elemento
JSONObject jsonacontecimiento = new JSONObject([Link]("acontecimiento"));
// Recuperar un elemento del objeto anterior
Log.d("JSON", ([Link]("nombre")) ? [Link]("nombre") : "No existe
nombre");

if ([Link]("eventos")) {
// Crear un array JSON a partir de un elemento que sea array
JSONArray jsoneventos = new JSONArray([Link]("eventos"));

// Recorrer el array JSON para recuperar sus elementos


for (int n = 0; n < [Link](); n++) {
JSONObject jsonevento = [Link](n);
Log.d("JSON", [Link]("nombreevento"));
}
} else {
Log.d("JSON", "No existe acontecimiento");
}
} catch (Exception e) {
Log.d("JSON", [Link]());
}

7. AdMob: Solicitar anuncios de prueba


Cuando estamos probando la aplicación en desarrollo, es mejor no mostrar anuncios verdaderos para evitar hacer clicks
erróneos en ellos y que Google nos pueda cancelar la cuenta. Así que solicitaremos a Google que nos muestra anuncios
de prueba.

// Sustituir "ABCDEF012345" por el ID de vuestro dispositivo


// que ee obtiene del logcat en Android Studio
AdRequest adRequest = new [Link]()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.addTestDevice("ABCDEF012345")
.build();

8. Abrir el fichero que se recibe desde un Intent


Podemos recibir un archivo de datos desde cualquier otra aplicación de niendo un Intent- lter en la nuestra.
// Recibir el Intent
Intent receivedIntent = getIntent();

// Recibir la acción
String receivedAction = [Link]();

// Si es una acción de enviar desde otra APP


if([Link](Intent.ACTION_SEND)){
Log.d("demo", "Action SEND");
// Recibir la URI del archivo
Uri data = [Link](Intent.EXTRA_STREAM);
String path = [Link]();

try {
// Abrir el fichero
InputStream fis = getContentResolver().openInputStream(data);
// Utilizar el fichero
XmlPullParserFactory xppf = [Link]();
[Link](false);
XmlPullParser xpp = [Link]();
[Link](fis,null);
// Cerrar el fichero
[Link]();
} catch (IOException e) {
[Link]();
} catch (XmlPullParserException e) {
[Link]();
}
}
// Si es una acción de abrir la APP directamente
else if([Link](Intent.ACTION_MAIN)){
Log.d("demo", "Action MAIN");
}

9. Pruebas de unidades locales e instrumentadas


Prueba de unidad local
import [Link];
import [Link];
import static [Link].*;

public class PersonTest {

private Pregunta p;

@Before
public void setUp() {
this.p = new Pregunta(
"Enunciado",
"Categoría",
"Respuesta",
"Respuesta",
"Respuesta",
"Respuesta",
""
);
}

@Test
public void personCategoria_isCorrect() {
assertEquals(true, [Link]("Categoria"));
assertEquals(false, [Link]("Categoria*"));
}
}
Prueba de unidad instrumentada contra SQLiteOpenHelper
import [Link];
import [Link].AndroidJUnit4;

import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import static [Link];

@RunWith([Link])
public class ModelTest {

// Repositorio extends SQLiteOpenHelper


private Repositorio repositorio;

@Before
public void setUp(){
[Link]().deleteDatabase([Link]());
repositorio = [Link]([Link]());
}

@After
public void tearDown() {
[Link]();
}

@Test
public void crudDB() {
Pregunta p_nueva = new Pregunta(
"Enunciado",
"Categoría",
"Respuesta",
"Respuesta",
"Respuesta",
"Respuesta",
""
);
assertEquals(true, [Link](p_nueva));

ArrayList<Pregunta> preguntas = [Link]();


assertEquals(1, [Link]());

assertEquals("Enunciado", [Link](0).getEnunciado());

Pregunta p2 = new Pregunta(


"1",
"Enunciado2",
"Categoría2",
"Respuesta2",
"Respuesta2",
"Respuesta2",
"Respuesta2",
""
);
assertEquals(true, [Link](p2));

preguntas = [Link]();
assertEquals(1, [Link]());

assertEquals("Enunciado2", [Link](0).getEnunciado());

assertEquals(false, [Link](100));

assertEquals(true, [Link]([Link](0).getCodigo()));

preguntas = [Link]();
assertEquals(0, [Link]());

 TECNOLOGÍA (https://www.ticarte.com/categorias/tecnologia)
Inicio  (https://www.ticarte.com/)/ Tecnología  (https://www.tic
public class MyLog { 
    // Cambiar a 'false' para deshabilitar el Log de la aplicación 
    static final boolean DEBUG = tr
 
Fuera del método onCreate()...
 
@Override 
public boolean onNavigateUp() { 
   // Asignar la acción necesaria. En este cas
void crearLayoutConImagen(LinearLayout ly, int res_img, String text){ 
   // Parámetros a asignar al layout 
   LinearLayout.
try { 
   // Hacer la conexión y leer el contenido línea a línea 
   URL url = new URL("http://www.ticarte.com/rest/10");
// Recibir el Intent 
Intent receivedIntent = getIntent(); 
// Recibir la acción 
String receivedAction = receivedIntent.getA
Prueba de unidad instrumentada contra SQLiteOpenHelper
import android.support.test.InstrumentationRegistry; 
import android.support.test.runner.AndroidJUnit4; 
import org.junit.Aft

También podría gustarte