Seekbar改变EditText的值死循环解决
Seekbar和EditText互相改变值,出现死循环解决方案!设置一个Boolean在EditText改变之前(beforeTextChanged)设置为false,在改变之后(afterTextChanged)设置为true
!看代码
private SeekBar seekBar;
private EditText editText;
private Boolean isInput=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
seekBar=(SeekBar) findViewById(R.id.seek_bar);
editText=(EditText) findViewById(R.id.edt1);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
isInput=false;
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
String str=charSequence.toString();
if(TextUtils.isEmpty(str)){
str="0";
}
seekBar.setProgress(Integer.parseInt(str));
}
@Override
public void afterTextChanged(Editable editable) {
isInput=true;
}
});
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if(isInput){
editText.setText(i+"");
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
}
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
