如何同时根据其他方式更改一个搜索栏的值

时间:2016-11-10 15:48:44

标签: android seekbar

在一个活动上有三个搜索栏。他们都有100个。我需要总共三个是100。

seek1 = 50且 seek2 = 45时, seek3 必须为5。 当我将 seek1 滑动到55 seek3 必须有0.等。

我该如何编码?

对不起,这是我的代码:

//01
   final SeekBar seekBar01 = (SeekBar)findViewById(R.id.seek01);
            final TextView seekBar01Value = (TextView)findViewById(R.id.txt01val);
            seekBar01.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    seekBar01Value.setText(String.valueOf(progress));
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            });
    //02
            SeekBar seekBar02 = (SeekBar)findViewById(R.id.seek02);
            final TextView seekBar02Value = (TextView)findViewById(R.id.txt02val);
            seekBar02.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    seekBar02Value.setText(String.valueOf(progress));
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            });

//03
            SeekBar seekBar03 = (SeekBar)findViewById(R.id.seek03);
            final TextView seekBar03Value = (TextView)findViewById(R.id.txt03val);
            seekBar03.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
                @Override
                public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                    seekBar03Value.setText(String.valueOf(progress));
                }

                @Override
                public void onStartTrackingTouch(SeekBar seekBar) {

                }

                @Override
                public void onStopTrackingTouch(SeekBar seekBar) {

                }
            });

我可以在各自的TextView上显示值,但是不知道如何从其他seekbar onProgressChanged更改另一个seebar进度。

2 个答案:

答案 0 :(得分:0)

OnSeekBarChangeListener设置为您的搜索栏。如果更改,请使用setProgress

将值设置为其他值

答案 1 :(得分:0)

麻烦是因为SeekBar的迟到声明。 如果收集所有SeekBar seekBarXX =(SeekBar)findViewById(R.id.seekXX);比改变听众更快地按预期工作。 抱歉愚蠢。 这是代码:

getValue()