I'm looking for an option to do something when EditText is touched, but I want it to be writeable, cause I found few solutions for it, but then the EditText turned to be unwriteable and I could only click it.
EditText ed == //to its reference
ed.setFocusableInTouchMode(true);
ed.setOnTouchListener(/*add a listener */);
//also remember to add ed.requestFocus(); in your listener
i guess the above should work right?
I am novice, I am trying to know if my EditText is empty to put a botton enabled or disabled. But when the EditText is empty the button continues appearing enabled. Here is my code.
if((getActivity().findViewById(R.id.textcodigo)).toString().matches("")){
Button aceptar= (Button) getActivity().findViewById(R.id.aceptar);
aceptar.setEnabled(false);
}
the problem is you need findViewById(R.id.textcodigo)).getText().toString().equals("") and not what you currently have
Maybe try
.getText().equals("")
Instead of
.toString().matches("")
Edit complete code :
if(((EditText) getActivity().findViewById(R.id.textcodigo)).toString().matches("")){
Button aceptar= (Button) getActivity().findViewById(R.id.aceptar);
aceptar.setEnabled(false);
}
what you want is .equal("") not matches (which take a regex as parameter)
hi I am disabling an edittext during part of my program but later I want to bring it back on line, and its not accepting focus or text entry. here is the code
Disable
intTextValue.setEnabled(false);
intTextValue.setInputType(InputType.TYPE_NULL);
intTextValue.setFocusable(false);
intSeek.setEnabled(false);
intType.setClickable(false);
Enable
intTextValue.setEnabled(true);
intTextValue.setInputType(InputType.TYPE_CLASS_NUMBER);
intTextValue.setFocusable(true);
intSeek.setEnabled(true);
intType.setClickable(true);
You will notice 3 variable names there intTextValue is the EditText, intSeek is a seek bar and intType is a spinner, the seekbar and spinner are both find, just editText which starts off enabled, after disable wont reenable.
help will be much appreciated.
thanks.
try this :
Disable :
EditText edt=(EditText)findViewById(R.id.editboxtxt);
edt.setEnabled(false);
edt.setInputType(InputType.TYPE_NULL);
edt.setFocusableInTouchMode(false);
edt.clearFocus();
Enable :
EditText edt=(EditText)findViewById(R.id.editboxtxt);
edt.setEnabled(true);
edt.setInputType(InputType.TYPE_CLASS_NUMBER);
edt.setFocusableInTouchMode(true);
edt.requestFocus();
Targeting Android 2.2
I have read the answers to the following questions:
Turn off autosuggest for EditText?
Android: Multiline & No autosuggest in EditText
I have tried the following variations on the suggestions:
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER);
setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER);
setInputType(InputType.TYPE_TEXT_VARIATION_NORMAL | InputType.TYPE_TEXT_VARIATION_FILTER | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS);
All of these work on most devices I've been testing (Droid X, Droid 2, Thunderbolt, Incredible) but don't work on the emulator and at least 1 device (Samsung GT i5500).
Is there any other way to programmatically disable the autocomplete/autosuggest for an EditText in a way the emulator and certain devices will recognize and respect?
For Vodafone 845 (2.1), huawei 8800 (2.2) devices, textVisiblePassword seems to prevent word prediction.
vendorId.setInputType(android.text.InputType.TYPE_CLASS_TEXT | android.text.InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
or
android:inputType="textVisiblePassword"
[Edit] this answer is quite old and I don't have the environment anymore to test to get up-to-date info for comments here, sorry.
In the layout XML, add the following attribute to your EditText:
android:inputType="text|textNoSuggestions"
If neither this, nor the above approaches work, then this is almost certainly a problem with the emulator and the other device, and you should contact the manufacturers directly.
See also: android:inputType (note that EditText is a subclass of TextView, which is why this attribute also works for EditTexts).
I've tried all the above and none of above really helped me. I've search through available InputTypes and I've came up with a solution, which happened to be TYPE_TEXT_FLAG_AUTO_COMPLETE:
mEditText.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_COMPLETE);
From its description:
This generally means that the input method should not be showing
candidates itself, but can expect for the editor to supply its own
completions/candidates from InputMethodSession.displayCompletions().
I haven't specified any completions set and as a result I'm not getting any auto-suggestions.
PS. Flag InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD mentioned in commend above does this trick as well, but it also disables toggling the language in the keyboard.
personally, this code help me:
autoCompleteTextView.setAdapter(null);
autoCompleteTextView.setText(address);
autoCompleteTextView.setAdapter(adapter);
I want to disable suggestions when I set text so I remove the adapter and after I call setText, I return it.
so if you want to disable suggestion just use:
autoCompleteTextView.setAdapter(null);
You can use the class AutoCompleteTextView and set the adapter that contains nothing
AutoCompleteTextView Class Reference
example
public class CountriesActivity extends Activity {
protected void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.countries);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COUNTRIES);
AutoCompleteTextView textView = (AutoCompleteTextView)
findViewById(R.id.countries_list);
textView.setAdapter(adapter);
}
private static final String[] COUNTRIES = new String[] {""};
}
Using android:inputType="textNoSuggestions|textVisiblePassword" for Edittext fix the problem.
I was fighting with the same problem in the emulator. While testing, I realized that what was appearing wasn't the normal autocomplete, but a special Asian character preview (presumably because it requires multiple keys to generate one Asian character). So I solved this by setting the language to English. I think what I was seeing was the "Key Preview" option listed under the "Japanese IME" setting in "Language & keyboard".
I'm guessing that it would be pretty hard to disable this within an individual App without delving into the keyboard handling and language support.
You could simply use the EditText's setThreshold() method. Set the threshold to let's say 100 when you don't want to show predictions. If you want to re-activate showing predictions, set it back to a small int like 1 or 2 depending on your needs.
You can also use following for disabling auto suggestion on any edittext.
<EditText>
android:inputType="textNoSuggestions|textVisiblePassword"
</EditText>
This worked for me.
Try This
android:importantForAutofill="no"
To turn off auto corrections/suggestions on EditText programmatically:
editText.setInputType(InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
Note: the aforementioned works for SearchView etal.
'oninput' event in the input, ran the following function:
function RefreshAutoComplete(elm) {
elm.keyup();
elm.focus();
}
I run the auto complete manually, and it works
Thank you all for the help
The answer acceted as correct is faulty. To disable auto suggest add following property to your EditText XML
android:inputType="textFilter"
I have 2 EditTexts; 01 and 02. My button will be disabled once the activity is started and when these two EditText contain text, the button has to be enabled again. However my button is always disabled and can't enable it using button.setEnabled(true);.
Can anyone help me with this?
summit.setEnabled(false);
buttonEnable();
public void buttonEnable(){
if (feedback.length()>0 && email.length()>0){
summit.setEnabled(true);
}else{
summit.setEnabled(false);
}
}
You're correct about needing a TextWatcher. The afterTextChanged(Editable) method is the one you're interested in for something like this. Call your buttonEnable() method from it, and add the TextWatcher to any applicable text fields. (Looks like feedback and email from your sample.)
One easy way can also be to set onKeyListener to your editText(), then if there is something in editText(), set button enable if nothing disable it.