gpt4 book ai didi

java - 使用Seekbar调整EditText

转载 作者:行者123 更新时间:2023-12-01 10:16:27 26 4
gpt4 key购买 nike

我有一个 SeekBar 和 EditText。我想创建一个 % slider ,当用户滑动 Seekbar 时,它会调整 EditText 字段。

我尝试过这个:

    mInterestRateEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
int i = Integer.parseInt(s.toString());
if (i >= 0 && i <= 100) {
mInterestRateSeekBar.setProgress(50);
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

mInterestRateSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
mInterestRateEditText.setText(progress + "");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}
});

但它所做的只是当我尝试滑动 slider 时,它将 EditText 锁定为 0,并且我无法移动 slider ?

最佳答案

正如我在评论中已经说过的,您正在创建一个循环。更改搜索栏,就会更改文本。这会再次更改搜索栏。

简单的解决方案:使用 boolean 值。

     boolean changedProgrammatically;

mInterestRateEditText.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
int i = Integer.parseInt(s.toString());
if(!changedProgrammatically){
if (i >= 0 && i <= 100) {
mInterestRateSeekBar.setProgress(50);
}

}else{
changedProgrammatically = false;
}
}
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

mInterestRateSeekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
changedProgrammatically = true;
mInterestRateEditText.setText(progress + "");
}

@Override
public void onStartTrackingTouch(SeekBar seekBar) {

}

@Override
public void onStopTrackingTouch(SeekBar seekBar) {

}
});

关于java - 使用Seekbar调整EditText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35863575/

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