texto studio modificar desde cambiar activity android text android-edittext edit

android - studio - cambiar texto de un textview desde activity



AƱadir restricciones de entrada para editar texto en Android? (1)

Tengo una condición donde se requiere ingresar algunos valores numéricos en la aplicación.

Casos:

  1. Si el usuario ingresa un número entero, entonces la longitud máxima debe ser de 8 dígitos. Ej .: 12345678

  2. Si los usuarios quieren ingresar valores decimales, solo pueden ingresar hasta 2 decimales. Ej .: 1.03, 123.95

  3. Si los usuarios ingresan 8 dígitos enteros, también pueden ingresar los decimales hasta 2 decimales. Ej .: 12345678.12

Entonces tenemos las siguientes entradas válidas:

1. 12345678 2. 123.45 3. 12345678.98

¿Cómo puedo lograr el escenario de caso anterior?


Aqui tienes. Esto es exactamente lo que quieres...

import android.app.Activity; import android.os.Bundle; import android.text.Editable; import android.text.InputFilter; import android.text.Spanned; import android.text.TextWatcher; import android.util.Log; import android.widget.EditText; public class EditTextLogic extends Activity { EditText mEditText; String TEMP="",INPUT=""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_tesxt_logic); mEditText =(EditText) findViewById(R.id.textView1); mEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {} @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2,int arg3) {} @Override public void afterTextChanged(Editable Token) { if(Token.toString().length()<INPUT.length()) { INPUT=Token.toString(); } } }); mEditText.setFilters(new InputFilter[] { new InputFilter() { @Override public CharSequence filter(CharSequence input, int arg1, int arg2, Spanned arg3, int arg4, int arg5) { CharSequence returned = validate(input.toString()); return returned; } } }); } private CharSequence validate(String Token) { Log.i("Token",""+Token); TEMP = INPUT; TEMP += Token; if(TEMP.contains(".")) { try { String FractionNo = TEMP.split("//.")[1]; if(FractionNo.length()> 2) { return ""; } else { INPUT = TEMP; return Token; } } catch(ArrayIndexOutOfBoundsException e) { INPUT = TEMP; return Token; } } else { if(TEMP.length()>8) { return ""; } else { INPUT = TEMP; return Token; } } } }

Y este es tu XML:

<EditText android:id="@+id/textView1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:singleLine="true"/>

¡Aclamaciones! Disfruta Codificacion !!