0

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

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);
    }
4

1 回答 1

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。

于 2013-06-24T06:42:15.027 回答