在textview中一起添加多个seekbar值

时间:2016-03-19 18:52:00

标签: java android textview seekbar

无法从多个Seekbars中添加值。试图将总数发送到total_view但它一直显示为0.我使用两个搜索栏,总数应该根据栏上的移动而改变所以我使用onSeekChangeListener

public class CalculateGradeActivity extends Activity {
    TextView text_view;  //shows percentage
    TextView text_view2; //shows percentage

    TextView total_view; //show total from text_view and text_view2

    SeekBar seek_bar1;
    SeekBar seek_bar2;

    int exam_grade;
    int homework;

    int total;

    @Override
    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);
        setContentView(R.layout.calculate_grade_view);
        seek_bar1 = (SeekBar) findViewById(R.id.seekBarExam);
        seek_bar2 = (SeekBar) findViewById(R.id.seekBarHomework);


        text_view = (TextView) findViewById(R.id.percentageSeekbar1);
        text_view2 = (TextView) findViewById(R.id.percentageSeekbar2);

        total_view = (TextView) findViewById(R.id.numeric_grade_id_output);


        seekbar();


    }



    public void seekbar() {


        int progress = seek_bar1.getProgress();
        text_view.setText(String.valueOf(progress));

        int progress2 = seek_bar2.getProgress();
        text_view2.setText(String.valueOf(progress2));


        total = exam_grade + homework;

        seek_bar1.setOnSeekBarChangeListener(
            new SeekBar.OnSeekBarChangeListener() {

                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                    text_view.setText(String.valueOf(progress) + "%");

                    exam_grade = progress;
                    total_view.setText(String.valueOf(total));

                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            }
        );

        seek_bar2.setOnSeekBarChangeListener(
            new SeekBar.OnSeekBarChangeListener(){

                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                    text_view2.setText(String.valueOf(progress)+"%");
                    homework = progress;
                    total_view.setText(String.valueOf(total));
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {


                }
            }
        );
    }
}

1 个答案:

答案 0 :(得分:0)

每次更改值时,必须在显示之前重新计算总数。

seek_bar1.setOnSeekBarChangeListener(

        new SeekBar.OnSeekBarChangeListener() {

            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                text_view.setText(String.valueOf(progress) + "%");

                exam_grade = progress;
                total = exam_grade + homework;
                total_view.setText(String.valueOf(total));

            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {

            }
        }
);

seek_bar2.setOnSeekBarChangeListener(
        new SeekBar.OnSeekBarChangeListener(){


            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

                text_view2.setText(String.valueOf(progress)+"%");
                homework = progress;
                total = exam_grade + homework;
                total_view.setText(String.valueOf(total));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {

            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {


            }
        }
);

JA