在NumberPicker中设置数字的默认值

时间:2013-06-24 06:02:47

标签: java android string math

我试图用数字选择器做一些简单的数学运算,这是基本的字符串操作。只是遇到麻烦在下面的代码中找到了一个开始。我有几个数字选择器,每个数字选择器都有一个预定值。

NumberPicker np - adds 25 to each individual number. 1 = 25, 2 = 50, etc

NumberPicker np2 - adds 100 to each individual number. 1 = 100, 2 = 200, etc

现在我有一个主TextView,我必须显示这些数字选择器值的当前输出,并添加“权重”,并显示添加的数字。

如果我的问题不像我想写的那样明确,我很抱歉道歉,我只是找到了很好的资源来帮助我弄清楚如何以一种简单的方式做到这一点。

我试着在下面的代码中,获取我的textview的当前值,然后获取numberpicker的值,然后我需要代码添加数字25,所以1 = +25,然后将其设置为我的textview。

    String current_weight = current_weight_view.getText().toString();
String newvalue= getText(newVal).toString(); 
    res=Integer.parseInt(current_weight)+Integer.parseInt(newvalue);
current_weight_view.setText(Integer.toString(res));

-

public class MainActivity extends Activity {
  private TextView current_weight;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    setupUI();
    }
    public void setupUI()
    {
        current_weight = (TextView) findViewById(R.id.current_weight);
        NumberPicker np = (NumberPicker) findViewById(R.id.npId);
        NumberPicker np1 = (NumberPicker) findViewById(R.id.NumberPicker01);
        NumberPicker np2 = (NumberPicker) findViewById(R.id.NumberPicker02);
        NumberPicker np3 = (NumberPicker) findViewById(R.id.NumberPicker03);


        np.setOnValueChangedListener(new OnValueChangeListener()
        {
            public void onValueChange(NumberPicker picker, int oldVal, 
                int newVal)
            {
                current_weight.setText(String.valueOf(newVal)); 
            }        
        });
        np1.setOnValueChangedListener(new OnValueChangeListener()
        {
            public void onValueChange(NumberPicker picker, int oldVal, 
                int newVal)
            {
                current_weight.setText(String.valueOf(newVal)); 
            }        
        });
        np2.setOnValueChangedListener(new OnValueChangeListener()
        {
            public void onValueChange(NumberPicker picker, int oldVal, 
                int newVal)
            {
                current_weight.setText(String.valueOf(newVal)); 
            }        
        });
        np3.setOnValueChangedListener(new OnValueChangeListener()
        {
            public void onValueChange(NumberPicker picker, int oldVal, 
                int newVal)
            {
                current_weight.setText(String.valueOf(newVal)); 
            }        
        });

        np.setMaxValue(10);
        np.setMinValue(1);
        np1.setMaxValue(10);
        np1.setMinValue(1);
        np2.setMaxValue(10);
        np2.setMinValue(1);
        np3.setMaxValue(10);
        np3.setMinValue(1);
    }

1 个答案:

答案 0 :(得分:2)

我不确定你想要达到的目标,可以试试NumberPicker.Formatter

 np.setMaxValue(10);
 np.setMinValue(1);

 np.setFormatter(new NumberPicker.Formatter() {
        @Override
        public String format(int i) {
            return String.valueOf(i*10);
        }
 });

现在NumberPicker将显示值为10,20,30..100而不是1,2,3..10。但是,如果用户选择100,则内部值不会更改,getValue()将为10.