API 8的数字选取器的替代方案



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

我需要选择一个介于0到12之间的小整数。我的UI中用于执行此操作的空间受到限制,必须比它的高度更宽。API 8中是否有一个小部件可以让我这样做?

编辑:可能重复先前SO问题。我看到了一个密切相关的问题,但a)它没有"横向"限制,B)关于可以从api 11复制代码的建议没有得到确切的解释

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

但从头开始挑选数字并没有那么难。

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

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中,只需添加两个id为bAdd和bSub的按钮,以及一个id为tvDisplay的文本视图,并按照您想要的来排列它们

试着看看这个自定义数字选择器。我会从这个开始,简单地将控件的布局修改为水平方向。

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

我不建议使用API 11或更高版本的NumberPicker。您会发现,在API 8中,有许多对较新类的依赖是不可用的。

最新更新