У меня есть EditText
, принимает символы, кроме пробелов, я использую InputFilter
для фильтрации входных символов, а InputFilter
ограничить длину ввода, но InputFilter
s не все работы.Android EditText InputFilter не работает
Мой полный код является то, как показано ниже: initBodyView()
является входом деятельности
public class MainActivity extends CustomedActivity{
InputFilter mcFilter = new InputFilter() {
@Override
public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
for (int i = start; i < end; i++) {
if (Character.isSpaceChar(source.charAt(i))) {
// do something
return "";
}
}
return null;
}
};
private TextWatcher mcTextWatcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// TODO Auto-generated method stub
if (mVinLimit <= INPUT_LOWER_LIMIT) {
mcFlag = true;
}
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
if (mVinLimit > INPUT_LOWER_LIMIT && mVinLimit < INPUT_UPPER_LIMIT) {
if (s.length() == mVinLimit) {
mcFlag = true;
} else {
mcFlag = false;
}
} else if (INPUT_UPPER_LIMIT == mVinLimit) {
if (s.length() > 0) {
mcFlag = true;
} else {
mcFlag = false;
}
}
}
};
// the entrance of the activity
@Override
protected void initBodyView() {
mBodyView = inflate(R.layout.layout);
mc = (EditText)mBodyView.findViewById(R.id.mc);
mc.addTextChangedListener(mcTextWatcher);
mc.setFilters(new InputFilter[] {
new InputFilter.LengthFilter(INPUT_LIMIT), mcFilter
});
}
}
второй InputFilter
не работает
атрибуты EditText
как следует:
<EditText
android:id="@+id/carriage_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:inputType="textUri"
android:singleLine="true" >
</EditText>
Что такое проблема с ур? –
Неверный фильтр фильтра mCarriageNumberFilter. – twlkyao
Как проходит ваша программа? Является ли ваша точка останова, если (Character.isSpaceChar (source.charAt (i))) –