Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 希克巴没有';我不能正常工作_Java_Android_Seekbar - Fatal编程技术网

Java 希克巴没有';我不能正常工作

Java 希克巴没有';我不能正常工作,java,android,seekbar,Java,Android,Seekbar,我希望每次触摸seekbar时都能从应用程序中获得价值。我在seekbar中声明的值将添加到我的url中,但每次我触摸seekbar时,它都会给我一个循环,url将在progressChanged上循环并作为金额seekbar加载。这是我的代码: int period = 0; SeekTime.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { @Override public void onStopTracki

我希望每次触摸seekbar时都能从应用程序中获得价值。我在seekbar中声明的值将添加到我的url中,但每次我触摸seekbar时,它都会给我一个循环,url将在
progressChanged
上循环并作为金额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();
int period=0;
SeekTime.setOnSeekbarchaneListener(新的OnSeekbarchaneListener(){
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
//TODO自动生成的方法存根
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
//TODO自动生成的方法存根
}
@凌驾
更改了公共进程无效(SeekBar SeekBar,int progress,
布尔值(用户){
//TODO自动生成的方法存根
如果(SeekTime.getProgress()3&&SeekTime.getProgress()8&&SeekTime.getProgress()13&&SeekTime.getProgress()18&&SeekTime.getProgress()23){
SeekTime.setProgress(25);
周期=360;
}
新建LoadData(URL+句点).execute();

我认为您遇到的问题是,当您调用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();
}
}
int period=0;
SeekTime.setOnSeekbarchaneListener(新的OnSeekbarchaneListener(){
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
//TODO自动生成的方法存根
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
//TODO自动生成的方法存根
}
@凌驾
更改了公共进程无效(SeekBar SeekBar,int progress,
布尔值(用户){
//TODO自动生成的方法存根
如果(来自用户){
如果(SeekTime.getProgress()3&&SeekTime.getProgress()8&&SeekTime.getProgress()13&&SeekTime.getProgress()18&&SeekTime.getProgress()23){
SeekTime.setProgress(25);
周期=360;
}
新建LoadData(URL+句点).execute();
}
}

我认为您遇到的问题是,当您调用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();
}
}
int period=0;
SeekTime.setOnSeekbarchaneListener(新的OnSeekbarchaneListener(){
@凌驾
TopTrackingTouch(SeekBar SeekBar)上的公共无效{
//TODO自动生成的方法存根
}
@凌驾
开始跟踪触摸时的公共无效(SeekBar SeekBar){
//TODO自动生成的方法存根
}
@凌驾
更改了公共进程无效(SeekBar SeekBar,int progress,
布尔值(用户){
//TODO自动生成的方法存根
如果(来自用户){
如果(SeekTime.getProgress()3&&SeekTime.getProgress()8&&SeekTime.getProgress()13&&SeekTime.getProgress()18&&SeekTime.getProgress()23){
SeekTime.setProgress(25);
周期=360;
}
新建LoadData(URL+句点).execute();
}
}

boolean fromUser是seekbarI的实现方法中的值。我不明白,你能解释一下吗?“你有fromUser变量,它允许你控制它。”fromUser是我从seekbar实现方法时得到的默认变量。因此,我的代码和你在回答中编写的代码之间没有区别。你尝试过这个代码吗?这是一个默认变量,但我认为它仅在第一次设置为“true”(当用户滚动滚动滚动条时)。之后,当您通过setProgress设置进度时,它被设置为false。我错了吗?如果是,当此变量设置为false时?这就是它不工作的原因:“当进度级别更改时通知客户端的回调。这包括用户通过触摸手势或箭头键/轨迹球启动的更改以及通过编程启动的更改。“你找到解决方案了吗?我认为你不应该在onProgressChanged方法中更改进度,因为这就是它循环的原因…boolean fromUser是seekbarI的实现方法的值。我不明白,你能解释一下吗?”你有允许你控制它的fromUser变量。”fromUser是我从seekbar实现方法时得到的默认变量。因此,我的代码和你在回答中编写的代码之间没有区别。你尝试过这个代码吗?这是一个默认变量,但我认为它仅在第一次设置为“true”(当用户滚动滚动滚动条时)。之后,当您通过setProgress设置进度时,它被设置为false。我错了吗?如果是,当此变量设置为false时?这就是它不工作的原因:“当进度级别更改时通知客户端的回调。这包括用户通过触摸手势或箭头键/轨迹球启动的更改以及通过编程启动的更改。“您找到解决方案了吗?我认为您不应该在onProgressChanged方法中更改进度,因为这就是它循环的原因。。。