Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Android: Personajes dejados atrás en EditText

Tengo este EditText con un límite de 150 caracteres:

<EditText android:id="@+id/editText1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="#fff" android:layout_marginBottom="50dp" android:padding="30dp" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:maxLength="150" android:gravity="top|left" android:lineSpacingMultiplier="1.8" android:inputType="textMultiLine|textCapSentences" > </EditText> 

Vista de texto:

 <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="100dp" /> 

Nueva actividad:

 import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; import android.view.View; import android.view.View.OnClickListener; import android.view.animation.Animation; import android.view.animation.AnimationUtils; import android.widget.EditText; import android.widget.ImageButton; import android.widget.TextView; public class NewActivity extends Activity { private TextView textView1; private EditText editText1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.new_text); final ImageButton a = (ImageButton) findViewById(R.id.imageBack); a.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Animation anim = AnimationUtils.loadAnimation(NewActivity.this, R.anim.animation); a.startAnimation(anim); Intent intent = new Intent(NewActivity.this,MainActivity.class); startActivity(intent); editText1.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int aft) { } @Override public void afterTextChanged(Editable s) { // this will show characters remaining textView1.setText(150 - s.toString().length() + "/150"); } }); } }); }} 

Quiero crear una pequeña caja en la esquina superior derecha de la página donde se puede ver cuántos caracteres hay izquierda, por ejemplo 132/150, he tratado de buscar otras soluciones aquí en stackoverflow, pero no podía conseguir que funcionen.

4 Solutions collect form web for “Android: Personajes dejados atrás en EditText”

Puedes hacerlo

 mEditText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void beforeTextChanged(CharSequence s, int start, int count, int aft { } @Override public void afterTextChanged(Editable s) { // this will show characters remaining countTextView.setText(150 - s.toString().length() + "/150"); } }); 

Puede utilizar un TextWatcher para ver cuando el texto ha cambiado

 private TextView mTextView; private EditText mEditText; private final TextWatcher mTextEditorWatcher = new TextWatcher() { public void beforeTextChanged(CharSequence s, int start, int count, int after) { } public void onTextChanged(CharSequence s, int start, int before, int count) { //This sets a textview to the current length mTextView.setText(String.valueOf(s.length())); } public void afterTextChanged(Editable s) { } }; 

Puede configurar el TextWatcher para el editor con

 mEditText.addTextChangedListener(mTextEditorWatcher); 

Programaticamente lo hacen como ..

 editText.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { int length = s.length(); // set this length/maxlength to the textview at the top left // corner textView.setText(""+length/max);//which is placed at the top roght corner } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } }); 
  1. Mantenga un TextWatcher y rastree la longitud del texto introducido.
  2. Hacer MAX_LENGTH – yourTextwatcherString.length;
  3. Mantenga la actualización de la vista en la parte superior de RHS basado en un temporizador / o incluso en la tecla de prensa, su deseo (hay varias maneras de hacerlo). Compruebe si la longitud antigua y la nueva longitud no son las mismas antes de actualizar la vista.
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.