0

私がやりたいのはこれです!ユーザーによって挿入された合計予算を含む 1 つのテキスト ビューと、支出の合計を含む別のテキスト ビューがあります。シークバーの最大値を取得して textview1 の値を取得し、textview2 の合計値に応じて増加させる方法はありますか?

これにシークバーを使用しない場合は、正しい方向に向けてください!

前もって感謝します!

4

1 に答える 1

0

SeekBar の Editable to setMax(int) で Integer.parseInt を使用して、TextChangedListener を EditText に追加します。間隔を設定するには、2番目のEditTextから取得した後、ユーザーが求めた量を最も近い間隔値に丸めます...

EditText etMaxValue, etInterval;
SeekBar seekBar;

int interval = 1;

public IntervalSeekBar() {

    //Initialize your EditText and SeekBar objects...

    etMaxValue.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable text) {
            seekBar.setMax(Integer.parseInt(text.toString()));
        }

        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}           
    });

    etInterval.addTextChangedListener(new TextWatcher() {
        public void afterTextChanged(Editable text) {
            interval = Integer.parseInt(text.toString());
            if (interval < 1) { interval = 1; }
        }

        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}
        public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {}           
    });

    seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        public void onProgressChanged(SeekBar sb, int value, boolean userInitiated) {
            value = ((int) Math.round(value/interval)) * interval;
            seekBar.setProgress(value);
        }

        public void onStartTrackingTouch(SeekBar arg0) { }
        public void onStopTrackingTouch(SeekBar arg0) {}
    });
}
于 2013-11-13T07:20:53.710 に答える