EditText
id="price"
视图的inputType="numberDecimal"
有EditText
,不接受任何数字但只接受一个小数点。包含id="store"
的其他inputType
视图未设置Android
,但有两个问题。如果视图没有输入,则从键盘输入数字不会执行任何操作。接受数字的唯一方法是紧跟一个字母或另一个数字。我使用默认的onCreateView()
键盘。布局在SherlockFragment
的子类的EditText
方法中膨胀。这可能是SherlockFragment
内EditText
查看行为的问题吗?我有一个类似的布局用于夸大'SherlockFragmentActivity'的子类,这些<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
style="@style/ProductTextViewTitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Product Tile" />
<TableRow android:layout_width="fill_parent"
android:layout_height="50dp"
android:gravity="center_vertical"
android:padding="5dp">
<TextView
style="@style/ApolloStyleBold"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:text="@string/price"/>
<EditText android:id="@+id/price"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:background="@null"
android:hint="@string/price_italic_hint"
android:inputType="numberDecimal"/>
</TableRow>
<TableRow android:layout_width="fill_parent"
android:layout_height="50dp"
android:gravity="center_vertical"
android:padding="5dp">
<TextView
style="@style/ApolloStyleBold"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.4"
android:gravity="center_vertical"
android:paddingLeft="5dp"
android:text="@string/store_name"/>
<EditText android:id="@+id/store"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.6"
android:background="@null"
android:hint="@string/stores_hint"
/>
</TableRow>
</LinearLayout>
视图表现正常。有谁知道可能导致这个问题的原因?
{{1}}
当我在Android v4.3上进行测试时,它有混乱(不接受数字作为输入)行为。但是,我在Android v4.1.2上测试了它,它接受数字作为输入。就EditText行为而言,这两个版本有什么不同吗?
答案 0 :(得分:2)
事实证明,问题不在于设置的android:inputType
,而是视图层次结构中的ViewGroup更高。用于夸大SherlockFragment
的布局是一个更复杂布局的孩子。
视图层次结构中的一些父母有一个名为FrameLayout
的{{1}} ViewGroup的子类。 DragLayer
课程实施了一个名为DragLayer
的{{1}},其方法为Interface
。 DragController.DragListener
中的此方法使用dispatchKeyEvent(KeyEvent event)
表示法,但未调用DragLayer
。添加这行代码后,点击键盘上的数字的事件没有被消耗掉,现在一切正常。
答案 1 :(得分:1)
您可以在price edittext
中使用以下代码android:inputType="number|numberDecimal" // this means number or decimal
答案 2 :(得分:1)
答案 3 :(得分:0)
尝试将以下代码放在EditText xml:
上android:digits="0123456789"
这告诉您的EditText只接受这些数字。当然,你可以根据需要修改它。
答案 4 :(得分:0)
您是否尝试过设置android:numeric="integer|signed|decimal"
?
或者,您可以使用KeyListener
方法设置setKeyListener()
,并强制EditText
接受数字/符号/字符。
答案 5 :(得分:0)
您的代码在我的模拟器上正常运行。但是有一个小问题可能是您的问题的答案,请输入键盘字符键顶部数字键的数字。请不要使用计算机键盘的数字键盘输入数字。希望它会对你有所帮助。