我只是想在某个EditText具有焦点时立即切换到数字键盘模式.
我有一个布局,有三个字段用于输入三个地图坐标.到现在为止还挺好.我在布局中使用android:inputType ="numberDecimal".当进入该字段时,用户获得数字小键盘.还好.
但是,当需要输入负坐标时,没有明显的方法可以做到这一点.
23.2342工作正常.232.3421工作正常.无法输入-11.23423 - 无法输入前导负号,甚至无法将坐标包装在()中.
我确信我可以将其更改为直接文本inputType,然后使用正则表达式来验证输入的内容实际上是一个数字坐标,处理错误消息回发给用户等等.但是我会而不是去那条路.
我用谷歌搜索和Stackoverflowed这个问题几个小时没有运气.有什么建议?
在应用程序的java部分创建EditText时,如何将其限制为与xml中的数字相同?例如:
new EditText(this);
Run Code Online (Sandbox Code Playgroud)
设置像
<EditText
android:id="@+id/h1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="numberDecimal"/>
Run Code Online (Sandbox Code Playgroud) 我的编辑文本应该只接受3位数字,而不是任何其他十进制数字.我使用下面的正则表达式来做到这一点,但这甚至接受像"."这样的字符.和" - ".那么如何避免接受小数值呢?
pattern=Pattern.compile("[0-9]{0,2}");
Run Code Online (Sandbox Code Playgroud)
甚至我将编辑文本设置为
android:digits="0123456789"
android:inputType="number"
Run Code Online (Sandbox Code Playgroud)
这不起作用.怎么解决?
如何只设置整数EditText?(我想避免用户输入逗号)
我正在编写的应用程序必须向用户显示一个动态创建的EditText小部件表.
我目前的代码:
/**
* Create and display the table of EditTexts on the screen
* @param x Number of columns
* @param y Number of rows
*/
private void createTable(int x, int y) {
TableLayout table = (TableLayout) findViewById(R.id.TableLayout01);
etGrid = new EditText[y][x];
for (int i = 0; i < y; i++) {
TableRow row = new TableRow(this);
for (int j = 0; j < x; j++) {
EditText et = new EditText(this);
et.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL
| InputType.TYPE_NUMBER_FLAG_SIGNED);
et.setSingleLine();
et.setMinimumWidth(getWindowManager().getDefaultDisplay().getWidth()/x); …Run Code Online (Sandbox Code Playgroud)