gpt4 book ai didi

android - 将 EditText 限制为带符号的十进制数

转载 作者:行者123 更新时间:2023-11-29 14:19:05 29 4
gpt4 key购买 nike

我正在编写必须向用户显示动态创建的 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);
etGrid[i][j] = et;
row.addView(et);
}
table.addView(row,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
}

}

问题出在这一行,根本不起作用:

et.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL 
| InputType.TYPE_NUMBER_FLAG_SIGNED);

在我的 Kindle Fire 上,我可以使用 InputType.TYPE_CLASS_NUMBER | 限制为十进制值。 InputType.TYPE_NUMBER_FLAG_DECIMAL 或使用 InputType.TYPE_CLASS_NUMBER | 签名InputType.TYPE_NUMBER_FLAG_SIGNED,但不是带符号的十进制。代码有什么问题?

最佳答案

试试这个:

et.setRawInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_SIGNED | InputType.TYPE_NUMBER_FLAG_DECIMAL);

引用:setRawInputType

编辑:

我试过了,它对我有用。

只要确定这一点:

您必须从 xml 布局 文件的 et edittext 中删除此属性 android:inputType。否则 setRawInputType 更改将不会反射(reflect)出来。

谢谢。

关于android - 将 EditText 限制为带符号的十进制数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14238866/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com