4

可能重复:
如何在 Android API 7 中实现 NumberPicker?

我需要在 0 到 12 范围内选择一个小整数。我的 UI 中的空间是有限的,并且必须比高度宽。API 8 中是否有可用的小部件允许我执行此操作?

编辑:重新可能重复以前的 SO 问题。我看到了一个密切相关的问题,但是 A)它没有“横向”限制和 B)关于可以从 api 11 复制代码的建议没有跟进具体如何做的解释。

4

2 回答 2

9

最简单(但也是最难看的)是带有 inputtype 编号的 edittext。

但是从头开始制作一个数字选择器并不难。

您只需要一个将变量作为文本的 Textview。添加一个 + 和 - 按钮,增加/减少变量并调用 Textview.setText(variable)

final int[] counter = {0};
Button add = (Button) findViewById(R.id.bAdd);
Button sub = (Button) findViewById(R.id.bSub);
TextView display = (TextView) findViewById(R.id.tvDisplay);

add.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
    counter[0]++;
    display.setText( "" + counter[0]);
    }
});

sub.setOnClickListener(new View.OnClickListener() {

    public void onClick(View v) {
    counter[0]--;
    display.setText( "" + counter[0]);
    }
});

在 xml 中只需添加 2 个 id 为 bAdd 和 bSub 的按钮以及一个 id 为 tvDisplay 的 textview 并按照您的意愿排列它们

于 2012-09-05T13:26:10.340 回答
1

试试看这个Custom Number Picker。我将从这个开始,简单地将控件的布局修改为水平方向。

另一种选择是找到 Android 2.3.4 NumberPicker 和 NumberPickerButton 的源代码并复制它。这还需要复制这些控件所需的资源。同样,您需要将按钮布局修改为水平方向。

我不建议使用 API 11 或更高版本的 NumberPicker。您会发现 API 8 无法使用的新类有很多依赖项。

于 2012-09-05T14:14:07.050 回答