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値が 1,2,3..10 ではなく 10,20,30..100 として表示されるようになりました。ただし、内部の値は変更されません。ユーザーが 100 を選択getValue()すると、10 になります。

于 2013-06-24T06:42:15.027 に答える