Custom EditText no muestra el teclado en el enfoque
Estoy creando una clase personalizada de EditText porque necesito fijar algunas fuentes de encargo; Sin embargo ahora cuando hago clic en el editText el teclado de Android no aparece más …
Aquí está mi clase
- Cómo personalizar el diseño de snackBar?
- SurfaceView vs Custom View (ampliado desde la vista). SurfaceView es más lento, ¿Por qué?
- Android: cómo agregar a los niños de un diseño xml en una vista personalizada
- El inflado manual de la vista personalizada genera diferentes diseños para la vista personalizada de ActionBar
- Vista personalizada de las pestañas de Android
package ro.gebs.captoom.utils.fonts; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Rect; import android.graphics.Typeface; import android.util.AttributeSet; import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import ro.gebs.captoom.R; public class CustomFontEditText extends EditText { private Context context; public CustomFontEditText(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); if (!isInEditMode()) { TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CustomFontEditText, defStyle, 0); assert a != null; int fontId = a.getInteger(R.styleable.CustomFontEditText_fontNameEdit, -1); if (fontId == -1) { throw new IllegalArgumentException("The font_name attribute is required and must refer " + "to a valid child."); } a.recycle(); initialize(fontId); } this.context = context; } public CustomFontEditText(Context context, AttributeSet attrs) { this(context, attrs, 0); this.context = context; } public CustomFontEditText(Context context) { super(context); this.context = context; } @SuppressWarnings("ConstantConditions") public void initialize(int fontId) { Typeface tf = null; switch (fontId) { case 0: tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/OpenSans-Regular.ttf"); break; case 1: tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/OpenSans-Bold.ttf"); break; case 2: tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/OpenSans-Semibold.ttf"); break; case 3: tf = Typeface.createFromAsset(getContext().getAssets(), "fonts/OpenSans-ExtraBold.ttf"); break; } setTypeface(tf); } }
Y cómo lo uso en XML:
<ro.gebs.captoom.utils.fonts.CustomFontEditText android:id="@+id/add_details_txt_edit" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:hint="@string/type_here" android:inputType="textPersonName" custom:fontNameEdit="Regular" />
Pensé que los acontecimientos de concentración fueron manejados por el hecho de que extiendo la clase de EditText …
¿Algún consejo?
- extendiendo la clase cardview muestran el rectángulo blanco alrededor de la tarjeta
- Estado de la barra de progreso android
- ¿Cómo puedo agregar los tonos de llamada personalizados de mi aplicación en la carpeta res / raw a un ringtonepreference
- Cambiar el comportamiento de un GridView para que se desplace horizontalmente en lugar de verticalmente
- Botones de encargo del triángulo androide
- Estilo de elemento de menú Arc como en la aplicación tumblr para Android
- Teclado personalizado con funcionalidad deslizar en android?
- Custom EditText no funciona después de establecer su tipo de entrada a través de setInputType ()
editText.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { editText.setFocusableInTouchMode(true); return false; } });
Es una vieja pregunta pero si alguien se preocupa, el problema está en la implementación del constructor:
public CustomFontEditText(Context context, AttributeSet attrs) { this(context, attrs, 0); this.context = context; }
El último argumento ("defStyle") que establezca como 0, debe ser el estilo predeterminado para un EditText. Si echa un vistazo al mismo constructor en la clase EditText:
public EditText(Context context, AttributeSet attrs) { this(context, attrs, com.android.internal.R.attr.editTextStyle); }
Como se puede ver, el estilo predeterminado para un EditText debe ser utilizado, por lo que su constructor debe tener este aspecto:
public CustomFontEditText(Context context, AttributeSet attrs) { this(context, attrs, android.R.attr.editTextStyle); this.context = context; }
Agrega esto
android:focusable="true"
implements KeyListener on your custom EditText Class and override methods of KeyListener
Intente hacer referencia para editar texto en tiempo de ejecución y llamar a solicitud de enfoque ()
et.requestFocus()
Y prueba
android:focusable="true"
- Error de Eclipse: Error al analizar … \ android-22 \ android-wear \ armeabi-v7a \ devices.xml
- ¿Cómo puedo saber si un camino cerrado contiene un punto determinado?