API 8的NumberPicker的替代方案

时间:2012-09-05 13:16:50

标签: android

  

可能重复:
  How would one implement a NumberPicker in Android API 7?

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

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

2 个答案:

答案 0 :(得分:8)

最简单(但也最丑陋)的是带有输入类型编号的编辑文本。

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

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

counter = 0;
add = (Button) findViewById(R.id.bAdd);
sub = (Button) findViewById(R.id.bSub);
display = (TextView) findViewById(R.id.tvDisplay);

add.setOnClickListener(new View.OnClickListener() {

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

sub.setOnClickListener(new View.OnClickListener() {

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

}

在xml中只需添加2个带有id bAdd和bSub的按钮以及带有id tvDisplay的textview,并按照你想要的方式排列它们

答案 1 :(得分:1)

尝试查看此Custom Number Picker。我将从那开始,只需将控件的布局修改为水平方向。

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

我不建议使用API​​ 11或更高版本的NumberPicker。您会发现API 8无法为您提供更多新的类。