[英]How to set limit for EditText in Android?
如何在EditText
上設置數字限制?
像最大數字一樣是30,從31開始設置Toast
?
如果您想檢測是否超過30個字符,這是一個答案
首先,我建議您在.xml
文件中設置它,如下所示:
<EditText
android:id="@+id/someId"
android:maxLength="30"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
然后在你的onCreate()
你必須初始化它,如下所示:
EditText eText = (EditText)findViewById(R.id.someId);
現在您必須按如下方式向其添加Filters
:
eText.setFilters(new InputFilter[] {
new InputFilter.LengthFilter(30)
});
最后你添加一個TextWatcher()
來處理它,如下所示:
eText.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if(count >= 30) Toast.makeText(MainActivity.this, "Max length of EditText is "+ String.valueOf(30), Toast.LENGTH_SHORT).show();
}
@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
}
});
有一個答案可以檢測用戶是否嘗試將數字設置為高於n
你的問題很難理解,但是,是的,最后我找到了你,你很幸運我一年前做過類似的事情......
首先創建一個名為Max30TextWatcher
(或任何名稱)的inner class
public class Max30TextWatcher implements TextWatcher {
private EditText et;
Max30TextWatcher(EditText et) {
this.et = et;
}
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if(TextUtils.isEmpty(editable.toString())){
return;
}
try {
if (Integer.valueOf(et.getText().toString()) > 30) {
Toast.makeText(MainActivity.this, "Max is 30 dawg", Toast.LENGTH_SHORT).show();
//put all the TextView ""
et.setText("");
}
}
catch(NumberFormatException e){
//no dots and comma accepted
et.setText("");
}
}
}
所以你將.xml
更改為:
<EditText
android:id="@+id/someId"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:maxLength="2" />
你按如下方式調用新類:
et = (EditText)findViewById(R.id.someId);
et.addTextChangedListener(new Max30TextWatcher(et));
你完成了,你不能把數字高於30 :)
快樂的編碼!
您可以添加onTextChangeListener
上EditText
和內部onTextChanged
,你可以檢查,如果輸入的數字大於30與否。 如果它大於30,您可以顯示帶有適當消息的Toast
,然后清除EditText
的文本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.