3

当我将其设置为“numberPassword”时,Eclipse 编辑器无法识别字段上的 inputType,代码如下:

<EditText
    android:id="@+id/pin_field"
    android:layout_width="236dp"
    android:layout_height="wrap_content"
    android:inputType="numberPassword">

    <requestFocus />
</EditText>

这是我在“android:inputType”行中遇到的错误:

"error: Error: String types not allowed (at 'inputType' with value 'numberPassword')."

在顶部的“图形布局”选项卡中,我已将版本从 2.3.3 更改为 Android 4.0,我读过它可能会修复它,但它似乎没有用。我可能遗漏了一些明显的东西,但无法弄清楚。

这是 inputType 和“numberPassword”的 Android 文档:http: //developer.android.com/reference/android/R.attr.html#inputType

4

2 回答 2

3
<EditText
    android:id="@+id/pin_field"
    android:layout_width="236dp"
    android:layout_height="wrap_content"
    android:inputType="number"
    android:password="true"
    <requestFocus />
</EditText>

试试上面的代码而不是你的代码

或者您可以通过如下代码动态设置

editText.setInputType( InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_VARIATION_PASSWORD);

更新::通过如下代码集 InputFilter 只接受字母或数字或两者

edittext.setFilters(new InputFilter[] {
    new InputFilter() {
        public CharSequence filter(CharSequence src, int start,
                int end, Spanned dst, int dstart, int dend) {
            if(src.equals("")){ // for backspace
                return src;
            }
            if(src.toString().matches("[a-zA-Z0-9 ]+")){
                return src;
            }
            return "";
        }
    }
});

请彻底测试!

于 2012-04-28T04:32:59.990 回答
1

Dispake 的评论给了我我需要的线索

“项目的 Android 构建目标设置为 4.0?”

我在 Manifest 文件中将 minSdk 作为 API 级别 14,它是 4.0 并且正确,这让我无法找到真正的问题。我在 Eclipse 中将项目的构建目标设置为 2.3.3,需要将其更改为 4.0。

于 2013-05-21T14:32:36.810 回答