如何在Android中使EditText仅从Java文件而不是XML中获取数字输入?我还需要使其成为最多允许 6 个数字的密码字段?
我检查了Android:如何在java类中创建EditText字段
以及如何从 java 代码创建 EditText 数字(有符号和无符号十进制)
很容易从XML中。这就是我们如何做这个 java 文件。
EditText et = new EditText(context);
// setting input type filter
et.setInputType(InputType.TYPE_CLASS_NUMBER);
// setting input max length
InputFilter maxLengthFilter = new InputFilter.LengthFilter(inp.getLength());
et.setFilters((new InputFilter[]{ maxLengthFilter }));
// settin it to password
et.setTransformationMethod(PasswordTransformationMethod.getInstance());
将 setInputType 用于以下一个或多个值:
http://developer.android.com/reference/android/widget/TextView.html#attr_android:inputType
我已经在XML
中完成了此操作,只需添加
android:numeric="decimal
在<EditText />
这样做:
LinearLayout mLinearLayout = new LinearLayout(this);
mLinearLayout = (LinearLayout)findViewById(R.id.mylinearlayout);
Button lButton = (Button)findViewById(R.id.mybtnid);
lButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
EditText lEditText = new EditText(this);
lEditText .setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
lEditText.SetText("Text Here");
mLinearLayout.addView(lEditText);
EditorInfo ed = new EditorInfo();
ed.inputType = InputType.TYPE_CLASS_PHONE;
lEditText.setInputType(ed.inputType);
InputFilter[] FilterArray = new InputFilter[1];
FilterArray[0] = new InputFilter.LengthFilter(6);
lEditText.setFilters(FilterArray);
或查看此博客以了解最大长度限制
Aditya答案有密码的方法,我认为更好
此致敬意