Reputation: 779
In my EditText
field, I want to give some min text as mandatory and max text as the limit, is there any way to achieve that?
If one is to type text, the numeric count has to decrease. How would I do that?
<EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/textView1"
android:layout_marginTop="24dp"
android:maxLength="175"
android:ems="10" />
this is my adding activity.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.home_layout);
System.out.println(PRAYER_CATEGORY.length);
tvPrayer = (TextView) findViewById(R.id.mystate);
spinnerPrayers = (Spinner) findViewById(R.id.spinnerstate);
ArrayAdapter<String> adapter_state = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, PRAYER_CATEGORY);
adapter_state
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerPrayers.setAdapter(adapter_state);
value=(EditText)findViewById(R.id.editText1);
value
.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (value.getText().toString().trim()
.length() < 3) {
value.setError("Failed");
} else {
value.setError(null);
}
}
else {
if (value.getText().toString().trim()
.length() < 3) {
value.setError("Failed");
} else {
value.setError(null);
}
}
}
});
btnSpeakprayer = (ImageButton) findViewById(R.id.btnSpeakprayer);
btn=(Button)findViewById(R.id.button1);
pb=(ProgressBar)findViewById(R.id.progressBar1);
pb.setVisibility(View.GONE);
btn.setOnClickListener(this);
Upvotes: 15
Views: 59657
Reputation: 2208
Change your code TO this:
instead of value.getText().trim().length()
try using value.getText().length()<3
value.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (value.getText().toString().trim().length() < 3)
value.setError("Failed");
else
value.setError(null);
}
}
});
Upvotes: 9
Reputation: 521
You can try this code
First of all you set your maxlength in xml file like this
<EditText
android:id="@+id/editText"
android:layout_width="match_parent"
android:inputType="textPassword"
android:lines="1"
android:maxLength="15"
android:maxLines="1"
android:singleLine="true" />
Then in your code you can write like this
et_billamt.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
if (et_billamt.getText().toString().trim().length() < 5) {
et_billamt.setError("Failed");
} else {
// your code here
et_billamt.setError(null);
}
} else {
if (et_billamt.getText().toString().trim().length() < 5) {
et_billamt.setError("Failed");
} else {
// your code here
et_billamt.setError(null);
}
}
}
});
I designed if after no focus, so here you can write for min length condition and max length condition
Upvotes: 12
Reputation: 51571
Here's an EditText and a Button:
EditText myEditText;
Button button;
In your onCreate():
myEditText = (EditText) findViewById(R.id.edittext);
button = (Button) findViewById(R.id.button);
Say you submit or use the value that a user types in the myEditText
using the button. Set an 'OnClickListener' to this button:
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
if (mEditText.length() < 1 ||
mEditText.length() > 175) {
mEditText.setError("Value should be between 1 and 175 characters in length");
mEditText.requestFocus();
} else {
// Value is valid (between 1 and 175 characters long)
String text = mEditText.getText().toString();
// submit
}
}
});
Upvotes: 0
Reputation: 12140
you can extend the EditText class, and override the onTextChanged method to monitor the text length change by yourself. Then you can control the limitation.
public class CustomEditText extends EditText{
public CustomEditText(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onTextChanged(CharSequence text, int start,
int lengthBefore, int lengthAfter) {
// TODO Auto-generated method stub
Log.i("length", "input text length = " + text.length());
super.onTextChanged(text, start, lengthBefore, lengthAfter);
}
}
Upvotes: 1
Reputation: 11194
Try this
EditText value =(EditText) findviewbyId(R.id.urEditTextId);// this line must be oncreate
// place these line where u want to check
String ed1=value .getText().toString();
int size=ed1.length();
you can match the digit and perform appropriate action
if(size==0)
//Toast : kindly enter atleast one letter
if(size>175)
//Toast : max length 175 char
Upvotes: 1