出于某种原因,对 EditText
使用 setInputType
会强制它成为一行。我需要 EditText 接受 NumberSigned。
我尝试使用 InputFilter
,如果 source.charAt(i)
不是 0-9 或点或 + 或 -,它会返回“”
但是如何允许换行符呢?我需要能够在 EditText 中输入多行。
我在 xml 和代码中都试过了:
et = new EditText(this);
et.setText(getResources().getString(R.string.default_value));
et.setInputType(InputType.TYPE_NUMBER_FLAG_SIGNED);
et.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT));
linearLayout.addView(et);
setText 输入一个字符串:
<string name="default_value">1,2,3\n4,5,6\n7,8,9</string>
显示为 1 2 3 4 5 6 7 8 9。
我尝试使用 setLines()
和 setMaxLines()
但没有成功。
我认为它被强制成一行的原因是因为换行符不是 InputType NumberSigned 的一部分。
最佳答案
如果你想输入有符号整数,那么你可以使用
...
android:digits="0123456789\n"
...
PS:不要忘记 9
和 \n
关于java - 在不丢失多行功能的情况下为 EditText 设置输入类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16840584/