我正在寻找类似于日期选择器对话框的各个部分的内容。允许您输入可以限制(例如 1 到 10 之间)的整数(并且仅限整数)的视图,您可以在其中使用键盘或视图本身中的箭头。它存在吗?
这是一个对话。请求整数的现成对话框也会有所帮助。
我正在寻找类似于日期选择器对话框的各个部分的内容。允许您输入可以限制(例如 1 到 10 之间)的整数(并且仅限整数)的视图,您可以在其中使用键盘或视图本身中的箭头。它存在吗?
这是一个对话。请求整数的现成对话框也会有所帮助。
该NumberPicker
小部件可能是您想要的。不幸的是,它位于com.android.internal.Widget.NumberPicker
我们无法通过正常方式到达的地方。
有两种使用方法:
这是在布局中使用它的 xml:
<com.android.internal.widget.NumberPicker
android:id="@+id/picker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
这是设置 NumberPicker 设置的反射(我没有测试过):
Object o = findViewById(R.id.picker);
Class c = o.getClass();
try
{
Method m = c.getMethod("setRange", int.class, int.class);
m.invoke(o, 0, 9);
}
catch (Exception e)
{
Log.e("", e.getMessage());
}
由于它是一个内部小部件而不是在 SDK 中,如果您使用反射,将来的兼容性可能会被破坏。从源头上滚动你自己的将是最安全的。
此信息的原始来源在此Google Group中共享。
正如其他地方所提到的,NumberPicker 现在在 Android SDK 中可用,从 API 11(Android 3.0)开始:
http://developer.android.com/reference/android/widget/NumberPicker.html
对于 Android < 3.0,您可以在此处使用代码:
https ://github.com/novak/numpicker-demo
https://github.com/mrn/numberpicker
您可以使用 EditTextandroid:inputType="number"
<EditText android:layout_height="wrap_content" android:id="@+id/editText1" android:inputType="number" android:layout_width="wrap_content"></EditText>
您可以简单地使用 anEditText
并将其定义inputType
为number
。例如:
<EditText
android:id="@+id/etNumberInput"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:inputType="number" />
要将最大值限制为 10,您可以通过编程方式执行以下操作:
final EditText et = findViewById(R.id.etNumberInput);
et.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {}
public void beforeTextChanged(CharSequence s, int start,
int count, int after) {}
public void onTextChanged(CharSequence s, int start,
int before, int count) {
if (Integer.parseInt(et.getText().toString()) > 10) {
et.setError("***Your error here***");
// your logic here; to limit the user from inputting
// a value greater than specified limit
}
}
});
这应该符合您的目标。