在一个活动上有三个搜索栏。他们都有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进度。
答案 0 :(得分:0)
将OnSeekBarChangeListener设置为您的搜索栏。如果更改,请使用setProgress
答案 1 :(得分:0)
麻烦是因为SeekBar的迟到声明。 如果收集所有SeekBar seekBarXX =(SeekBar)findViewById(R.id.seekXX);比改变听众更快地按预期工作。 抱歉愚蠢。 这是代码:
getValue()