带有 inputType numberDecimal 的 Android EditText 字段设置默认值

Posted

技术标签:

【中文标题】带有 inputType numberDecimal 的 Android EditText 字段设置默认值【英文标题】:Android EditText field with inputType numberDecimal set default value 【发布时间】:2017-02-13 03:03:23 【问题描述】:

我有一个带有 inputType numberDecimal 的 EditText 字段。我在我的代码中找到了该字段:

EditText mField = (EditText) v.findViewById(R.id.fieldName);

我想在渲染之前设置这个字段值。我尝试 setText(),应用程序崩溃,因为我无法在 numberDecimal 类型的字段上设置字符串值。

编辑: 我需要一个 KeyListener 的输入字段只包含数字和点,我还想传递默认的 double/float/int 值。

回答:我使用了错误的字段 id。

【问题讨论】:

您能否发布您将值设置为编辑文本的实际代码?我猜你在解析值时可能会犯一些错误。请注意,它只接受字符序列。 我正在尝试这样的事情:mField.setText(String.valueOf(230.3)); @LoveForDroid 您能否从您的 logcat 中检查并发布崩溃错误消息。还要提到代码中的哪一行,它指向。 传递 float/double 它不会崩溃,但也不会显示值(编辑:传递 String.valueOf(float/double) )。如果我将此转换为 int 正在尝试查找资源 android.content.res.Resources$NotFoundException: String resource ID #0xc8 @LoveForDroid Error:(38, 14) 错误:没有找到适合 setText(double) 方法 TextView.setText(CharSequence) 的方法不适用(参数不匹配;double 不能转换为 CharSequence)方法 TextView。 setText(int) 不适用(参数不匹配;从 double 到 int 的可能有损转换)@LoveForDroid 【参考方案1】:

如果您必须在屏幕加载时对值进行硬编码,为什么不这样做:

mField.setText("230.3");

mField.setOnEditorActionListener(new EditText.OnEditorActionListener() 
        
            public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) 
            
                if (i == EditorInfo.IME_ACTION_DONE) 
                
                    // Done button pressed
                
                return false;
            
        );

【讨论】:

请张贴布局xml和相应的android代码。很难确定您可能犯的错误。因为我发布的这段代码应该可以工作。 我发现错误是我使用父布局中的组件 ID。太失望了。非常感谢您的宝贵时间。

以上是关于带有 inputType numberDecimal 的 Android EditText 字段设置默认值的主要内容,如果未能解决你的问题,请参考以下文章

将两个带有输入字段的数组合并在一起

如何拥有带有名称的字段数组?

带有 android:hint 的 Android EditText 密码

`<input type="file"/>` 的 ng-model(带有指令 DEMO)

带有实体关系的nestjs graphql - 如何装饰它?

带有两个按钮的表单以不同的值提交