studio solo propiedades primera mayusculas mayuscula letras letra inputtype edittext android android-edittext

android - solo - Mayúscula en mayúscula para EditText



propiedades edittext android (11)

Anteriormente solía ser android:capitalize="words" , que ahora está en desuso. La alternativa recomendada es usar android:inputType="textCapWords"

Tenga en cuenta que esto solo funcionará si la configuración de mayúsculas y minúsculas del teclado del dispositivo está habilitada.

Para hacer esto programáticamente, use el siguiente método:

setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);

Estoy trabajando en una pequeña aplicación de lista de tareas personal y hasta ahora todo ha funcionado bastante bien. Hay una pequeña peculiaridad que me gustaría descubrir. Cada vez que voy a agregar un nuevo elemento, tengo un cuadro de diálogo con una vista EditarTexto que se muestra en el interior. Cuando selecciono la vista Editar texto, aparece el teclado para ingresar texto, como es debido. En la mayoría de las aplicaciones, el valor predeterminado parece ser que la tecla de mayúsculas se mantiene para la primera letra ... aunque no lo hace para mi vista. Tiene que haber una forma sencilla de solucionarlo, pero he buscado la referencia repetidamente y no puedo encontrarla. Estoy pensando que tiene que haber un atributo xml para la referencia cargada por el Adaptador, pero no puedo descubrir qué es.


Aplique la siguiente línea en su EditText en XML.

android:inputType="textCapSentences|textMultiLine"

También permitirá soporte multilínea.


En su archivo XML de diseño: establezca android: inputType = "textCapSentences" en su EditText para tener el primer alfabeto de la primera palabra de cada oración como capital O android: inputType = "textCapWords" en su EditText para tener el primer alfabeto de cada palabra como mayúscula


Encontré el mismo problema, solo compartiendo lo que descubrí. Podría ayudarte a ti y a otros ...

Intente esto en su layout.add la línea de abajo en su EditText .

android:inputType="textCapWords|textCapSentences"

funciona bien en mí ... espero que funcione también en ti ...


Establecer el tipo de entrada en XML, así como en el archivo JAVA como este,

En XML,

android: inputType = "textMultiLine | textCapSentences"

También permitirá multilínea y en archivo JAVA,

momentTextView.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS | InputType.TYPE_TEXT_FLAG_MULTI_LINE)

asegúrese de que la configuración de capitalización automática de su teclado esté activada .


Pruebe este Código, capitalizará el primer carácter de todas las palabras.

- establecer addTextChangedListener para la vista EditText

edt_text.addTextChangedListener (observador);

- Añadir TextWatcher

TextWatcher watcher = new TextWatcher() { int mStart = 0; @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { mStart = start + count; } @Override public void afterTextChanged(Editable s) { String input = s.toString(); String capitalizedText; if (input.length() < 1) capitalizedText = input; else if (input.length() > 1 && input.contains(" ")) { String fstr = input.substring(0, input.lastIndexOf(" ") + 1); if (fstr.length() == input.length()) { capitalizedText = fstr; } else { String sstr = input.substring(input.lastIndexOf(" ") + 1); sstr = sstr.substring(0, 1).toUpperCase() + sstr.substring(1); capitalizedText = fstr + sstr; } } else capitalizedText = input.substring(0, 1).toUpperCase() + input.substring(1); if (!capitalizedText.equals(edt_text.getText().toString())) { edt_text.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { edt_text.setSelection(mStart); edt_text.removeTextChangedListener(this); } }); edt_text.setText(capitalizedText); } } };


Puedo asegurarles que ambas respuestas harán mayúscula en la primera letra y no harán una sola línea de texto de edición.

Si quieres hacerlo en XMl a continuación está el código.

edittext.setRawInputType(InputType.TYPE_CLASS_TEXT|InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

Si quieres hacerlo en la actividad / fragmento, etc. a continuación está el código

android:inputType="textCapWords|textCapSentences"

PD: Si tiene otra propiedad, también puede agregarla fácilmente con una canalización "|" símbolo, solo asegúrese de que no haya espacio en xml entre las propiedades del atributo



Utilice este código solo para el uso de mayúsculas en la primera letra para EditText

MainActivity.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="wrap_content" android:tag="true"> </EditText> </RelativeLayout>

MainActivity.java

EditText et = findViewById(R.id.et); et.addTextChangedListener(new TextWatcher() { public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { if (et.getText().toString().length() == 1 && et.getTag().toString().equals("true")) { et.setTag("false"); et.setText(et.getText().toString().toUpperCase()); et.setSelection(et.getText().toString().length()); } if(et.getText().toString().length() == 0) { et.setTag("true"); } } public void afterTextChanged(Editable editable) { } });


Estáticamente (es decir, en su archivo XML de diseño): configure android:inputType="textCapSentences" en su EditText .

Programáticamente: debes incluir InputType.TYPE_CLASS_TEXT en el InputType del EditText , por ejemplo

EditText editor = new EditText(this); editor.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);

Se puede combinar con el texto y sus variaciones para solicitar la capitalización del primer carácter de cada oración.

- Google Docs


testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);

o android:inputType="textCapSentences" solo funcionará si la configuración de mayúsculas y android:inputType="textCapSentences" teclado de su dispositivo está habilitada.