以下代码生成EditText(目标版本23)。我已经为此工作了大约8个小时,并且收到了一些建议,但我认为以前没有人见过这个,所以我仍然卡住了。
我添加了一个TextWatcher。如果数字没有发布,TextWatcher也没有看到它们。
EditText bottomT = new EditText(model);
bottomT.setTextSize(14);
bottomT.setHint("ZIP");
bottomT.setHintTextColor(Color.BLACK);
bottomT.setBackgroundColor(Color.WHITE);
bottomT.setTextColor(Color.BLACK);
// bottomT.setInputType(InputType.TYPE_CLASS_NUMBER) Didn't make any difference.
// bottomT.setRawInputType(InputType.TYPE_CLASS_NUMBER) Didn't make any difference.
// bottomT.setText("", TextView.BufferType.EDITABLE); DIdn't make a difference
bottomT.setText("");
答案 0 :(得分:1)
EditText行为不端,因为在我的自定义ViewGroup中有
protected void onLayout(boolean changed, int l, int t, int r, int b)
{
....
child.layout(child.getLeft(), child.getTop(),
child.getLeft() + child.getMeasuredWidth(),
child.getTop() + child.getMeasuredHeight());
child.setRight(somevalue); // CAUSES EDITTEXT PROBLEMS
child.setBottom(somevalue); // CAUSES EDITTEXT PROBLEMS
现在很清楚我不能设置setRight()和setBottom(),但是也很清楚EditText不应该变得怪异。
忽略退格键。
随机忽略数字键,但接受小数点。
忽略newLine(Enter)键
哪些键被忽略或取消,取决于设备。三星Tab 4或Nexus 5 API 23 X86仿真器是看到这个的好地方。
答案 1 :(得分:0)
您必须在java代码中添加此行。
bottomT.setInputType(EditorInfo.TYPE_CLASS_NUMBER);
答案 2 :(得分:0)
试试这行代码。
bottomT.setInputType(InputType.TYPE_CLASS_NUMBER |InputType.TYPE_NUMBER_FLAG_DECIMAL);