设置EditText字段的最大和最小长度,该字段在用户键入时检查其长度并通知用户(如红色EditText行或不弹入键入的小弹出窗口)。我不知道这个编码应该是在xml还是java文件上。
以用户名为例: xml文件
<EditText
android:id="@+id/etusername"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="Username"
android:inputType="textPersonName"
android:maxLength="25"
android:digits="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"/>
.java文件
EditText etUsername=(EditText) findViewById(R.id.etusername);
String username=etUsername.getText().toString();
btnRegister.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//any operation here
}
答案 0 :(得分:3)
对于最低要求,您可以执行以下操作:
使用.getText().toString().length()
选择最小长度
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private EditText myEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
myEditText = (EditText) findViewById(R.id.myEditText);
Button button = (Button) findViewById(R.id.button);
int lenght = 25;
myEditText.setFilters(new InputFilter[] {new InputFilter.LengthFilter(lenght)});
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int i = v.getId();
if (i == R.id.button) {
if (myEditText.getText().toString().length() < 4) {
myEditText.setError("4 char minimum!");
} else {
myEditText.setError(null);
}
}
}
}
答案 1 :(得分:0)
您需要使用TextWatcher来查看长度
etUsername.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) {
}
@Override
public void onTextChanged(final CharSequence s, final int start, final int before, final int count) {
}
@Override
public void afterTextChanged(final Editable s) {
if(s.toString.length > MAX){
/// Your code here
}
}
});
这将允许用户继续键入字段,但可以让您手动控制错误状态。请注意,如果您手动调用
etUsername.setText("...");
它将重新触发TextWatcher并导致无限循环