miércoles, 11 de noviembre de 2015

This class should provide a default constructor (a public constructor with no arguments) - SQLITE

Si habeis llegado hasta aquí buscando solución a este error a la hora de generar el archivo apk-release de vuestra app, es que estaís tan desesperado como yo lo estuve :) En mi caso por lo menos, el error estaba en el AndroidManifiest.xml, en la declaración de las actividades. Si teneis declaradas como actividades las clases extendidas de SQLiteOpenHelper o de CursorAdapter, quitadlas del AndroidManifiest.xml, borrad todo lo referente a la actividad, "<activity......<activity/>", y volved a intentar generar el apk.

Lamento no poder explicar el porqué de este error, todavía no tengo conocimientos tan profundos. Dejo el link donde ví la luz...

http://stackoverflow.com/questions/31118464/got-this-error-this-class-should-provide-a-default-constructor-for-dbhelper

martes, 10 de noviembre de 2015

forzar portrait / landscape en una actividad android

Para forzar a una actividad que muestre su correspondiente layout portrait/landscape tendremos que editar el AndroidManifiest.xml y añadir en el apartado de la correspondiente actividad lo siguiente:

<activity     
   android:name=".PrincipalActivity2" 
   android:screenOrientation="portrait" <-- añadir esta linea     
   android:label="@string/title_activity_principal_activity2" >
</activity>

Añadiremos la línea señalada arriba, ya sabeis, "portrait" para vertical y "landscape" para horizontal.

capturar boton atras android listener

Para capturar el botón "atras" del sistema android utilizaremos un método bastante fácil y simple ya implementado, basta con que lo pongamos en la actividad en la cual queremos capturar el botón "atras":

@Override
    public void onBackPressed() {
    super.onBackPressed();
    Intent i = new Intent (EdiciontiendaActivity.this, ListadotiendasActivity.class);
    i.putExtra("marca", false);
    startActivity(i);
    finish();
}

En este ejemplo al presionar el botón "atras" ejecutaremos el intent "i" el cual nos llevara a otra actividad mandándole como dato un booleano con la descripción "marca", y luego cerraremos la actividad origen con finish().


viernes, 30 de octubre de 2015

crear boton llamada android

En este caso vamos a crear un boton con el cual llamar directamente a un telefono que ya tenemos guardado en una string:

Importamos la libreria correspondiente:

import android.net.Uri;

La cadena la podeis toma de donde querais, directamente, de un EditText, etc... Creamos el boton y su método OnClick, donde "telefono" es nuestra cadena con el número de teléfono, el prefijo "tel:" es necesario para nuestro objetivo, quedaría así:

b_telefono.setOnClickListener(new View.OnClickListener() {
    @Override    public void onClick(View v) {
        Uri num = Uri.parse("tel:"+telefono);
        Intent i = new Intent(Intent.ACTION_CALL, num);
        startActivity(i);
    }
});


Otra cosa importante es añadir en nuesto AndroidManifiest.xml el permiso para que la app pueda realizar llamadas. Sería añadir esta línea justo antes de <application

<uses-permission android:name="android.permission.CALL_PHONE"/>


miércoles, 28 de octubre de 2015

ocultar teclado android - foco automatico edittext solucion

Bueno, seguro que hay más soluciones para desactivar el foco automático que nos hace android al primer edittext que pilla, el cual nos resulta algo molesto algunas veces ya que el teclado nos tapa parte de la pantalla, pues bien, una posible solución sería ocultar el teclado nada más ejecutar la actividad con la línea siguiente en el método OnCreate:

this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

acentos tildes en android studio

Algo sencillo de hacer pero bastante útil. En la ventana del navegador del proyecto de android studio podrás encontrar el elemento "build.gradle", haz doble click en él y se te abrirá una ventana con el título "app" y el icono de gradle. Pues bien, en el código debes agregar la siguiente línea:

android {
    
    compileOptions.encoding "ISO-8859-1"


Es para que realice la compilación con los caracteres españoles.