jueves, 9 de junio de 2011

Custom scrollview con scroll lock dinámico

Con esta sencilla clase podemos tener un scrollview que deshabilite el scroll dinámicamente en función de un flag

public class MenuScrollView extends ScrollView {


/**

* Flag para controlar el bloqueo del scroll

*/

boolean lock = false;


public boolean isLocked() {

return lock;

}


public void setLock(boolean lock) {

this.lock = lock;

}


public MenuScrollView(Context context, AttributeSet attrs, int i) {

super(context, attrs, i);

this.setVerticalScrollBarEnabled(false);

this.setHorizontalScrollBarEnabled(false);

}


public MenuScrollView(Context context, AttributeSet attrs) {

super(context, attrs);

this.setVerticalScrollBarEnabled(false);

this.setHorizontalScrollBarEnabled(false);

}


public MenuScrollView(Context context) {

super(context);

this.setVerticalScrollBarEnabled(false);

this.setHorizontalScrollBarEnabled(false);

}


/**

* Return true -> no scroll

*/

public boolean onTouchEvent(MotionEvent ev) {

if (lock) {

return true;

} else {

return super.onTouchEvent(ev);

}


}


/**

* Return false -> no scroll

*/

public boolean onInterceptTouchEvent(MotionEvent ev) {

if (lock) {

return false;

} else {

return super.onInterceptTouchEvent(ev);

}

}

}



miércoles, 8 de junio de 2011

Añadir contacto

Añadir contacto al terminal utilizando la aplicación nativa de agenda:

Intent i=new Intent(Intent.ACTION_INSERT_OR_EDIT);
i.setType(Contacts.CONTENT_ITEM_TYPE);
i.addCategory(Intent.CATEGORY_DEFAULT);

// Nombre del contacto
i.putExtra(Insert.NAME"Nombre");
// Teléfono principal. En algunos terminales si no se especifica teléfono no aparece el contacto (HTC Desire)
i.putExtra(Insert.PHONE"954 123 456");
i.putExtra(Insert.PHONE_TYPE, Phone.TYPE_WORK);
// Teléfono secundario.
i.putExtra(Insert.SECONDARY_PHONE"954 789 012");
i.putExtra(Insert.SECONDARY_PHONE_TYPE, Phone.TYPE_OTHER);
// Fax
i.putExtra(Insert.TERTIARY_PHONE"912 345 567");
i.putExtra(Insert.TERTIARY_PHONE_TYPE, Phone.TYPE_FAX_WORK);
// Email
i.putExtra(Insert.EMAIL, "luis@mail.com");
// Dirección
i.putExtra(Insert.POSTAL, "Calle Sierpes 1, 41002, Sevilla");
startActivity(i);