gpt4 book ai didi

android - Android中如何设置第一个Seekbar进程值就是给第二个Seekbar赋初值?

转载 作者:行者123 更新时间:2023-11-29 01:28:04 24 4
gpt4 key购买 nike

我有两个搜索栏。我想设置第一个Seekbar的过程值就是给第二个Seekbar赋初值。我的确切要求是,我想用三个 seekbar 覆盖 0 到 100。例如:如果 FirstSeekBar 覆盖 1 到 30,第二个 SeekBar 自动从 30 到 100 开始。如果我在第二个 seekbar 中设置过程值 60,第三个 Seekbar 自动从 60 到 100 开始。请帮我解决这个问题。

activity.xml

<SeekBar
android:id="@+id/firstSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"/>
<SeekBar
android:id="@+id/secondSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />
<SeekBar
android:id="@+id/thirdSeekBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp" />

SeekBarActivity.java

firstSeekBar.setOnSeekBarChangeListener(
new SeekBar.OnSeekBarChangeListener() {
int firstPgrValue;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
firstPgrValue = progress;
secondSeekBar.setEnabled(true);
txtFirstSeek.setText("First (" + progress + " / " + firstSeekBar.getMax() + ")");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
shortMessage(MainActivity.this, "Progress Start");
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (firstPgrValue == 0) {
secondSeekBar.setEnabled(false);
redSeekBar.setEnabled(false);
}
txtFirstSeek.setText("First (" + firstPgrValue + " / " + firstSeekBar.getMax() + ")");
shortMessage(MainActivity.this, "Progress Stopped");
}
}
);

secondSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int secondPgrValue;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
secondPgrValue = progress;
thirdSeekBar.setEnabled(true);
txtSecondSeek.setText("Second (" + progress + " / " + secondSeekBar.getMax() + ")");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
shortMessage(MainActivity.this, "Progress Start");
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
if (secondPgrValue == 0) {
thirdSeekBar.setEnabled(false);
}
txtSecondSeek.setText("Second (" + secondPgrValue + " / " + secondSeekBar.getMax() + ")");
shortMessage(MainActivity.this, "Progress Stopped");
}
});
thirdSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
int thirdPsrValue;
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
thirdPsrValue = progress;
txtRedSeek.setText("Third (" + progress + " / " + redSeekBar.getMax() + ")");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {
shortMessage(MainActivity.this, "Progress Start");
}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {
txtThirdSeek.setText("Third (" + thirdPsrValue + " / " + thirdSeekBar.getMax() + ")");
shortMessage(MainActivity.this, "Progress Stopped");
}
});

最佳答案

不幸的是, Vanilla SeekBar 没有默认的 min 字段。我将此值与不整洁且不方便的 int 字段并行存储。您可以扩展该类,或者像我一样做,但在我看来,您描述的是一种常见情况,许多 RangeBar 实现已经提供了该功能。

My Exact requirement is, I want cover 0 to 100 with three seekbar.Ex : If FirstSeekBar cover 1 to 30 the Second SeekBar automatically starts 30 to 100. if I set process value 60 in second seekbar the Third Seekbar automatically starts 60 to 100.

https://github.com/yahoo/android-range-seek-bar只有两个拇指,应该是理想的。 Others提供无限大拇指。

关于android - Android中如何设置第一个Seekbar进程值就是给第二个Seekbar赋初值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32756044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com