我希望每次在我的应用程序中接触到它时,都能从它那里获得值。我在seekbar中声明的值将被添加到我的url中,但每次我触摸seekbar时,它会给我一个循环,url将循环并加载为progressChanged上的amount seekbar。这是我的代码:
int period = 0;
SeekTime.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
if (SeekTime.getProgress() <= 3){
SeekTime.setProgress(0);
period=7;
}
if (SeekTime.getProgress() > 3 && SeekTime.getProgress() <= 8) {
SeekTime.setProgress(5);
period =30;
}
if (SeekTime.getProgress() >8 && SeekTime.getProgress()<=13){
SeekTime.setProgress(10);
period = 90;
}
if (SeekTime.getProgress() >13 && SeekTime.getProgress()<=18){
SeekTime.setProgress(15);
period = 180;
}
if (SeekTime.getProgress() >18 && SeekTime.getProgress()<=23){
SeekTime.setProgress(20);
period = 270;
}
if (SeekTime.getProgress() >23){
SeekTime.setProgress(25);
period = 360;
}
new LoadData(URL+period).execute();发布于 2013-05-27 12:10:43
我认为你得到的问题是因为当你调用SeekTime.setProgress()时,进程被改变了--它再次调用onProgressChange()。
你应该做的是检查用户是否已经完成了进度更改。您可以使用fromUser变量来控制它。
int period = 0;
SeekTime.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
// TODO Auto-generated method stub
if(fromUser) {
if (SeekTime.getProgress() <= 3){
SeekTime.setProgress(0);
period=7;
}
if (SeekTime.getProgress() > 3 && SeekTime.getProgress() <= 8) {
SeekTime.setProgress(5);
period =30;
}
if (SeekTime.getProgress() >8 && SeekTime.getProgress()<=13){
SeekTime.setProgress(10);
period = 90;
}
if (SeekTime.getProgress() >13 && SeekTime.getProgress()<=18){
SeekTime.setProgress(15);
period = 180;
}
if (SeekTime.getProgress() >18 && SeekTime.getProgress()<=23){
SeekTime.setProgress(20);
period = 270;
}
if (SeekTime.getProgress() >23){
SeekTime.setProgress(25);
period = 360;
}
new LoadData(URL+period).execute();
}
}https://stackoverflow.com/questions/16766130
复制相似问题