Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/318.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 单击时如何启用和禁用seekbar?_Java_Android_Seekbar - Fatal编程技术网

Java 单击时如何启用和禁用seekbar?

Java 单击时如何启用和禁用seekbar?,java,android,seekbar,Java,Android,Seekbar,大家好,我有两个搜索栏A和B,他们编辑了两个文本视图1和2。A编辑1,B编辑2。我希望它能够工作,这样当用户触摸seekbar A时,seekbar B将被禁用,同样,当用户触摸seekbar B时,seekbar A将被禁用。但是,当应用程序启动时,seekbar B将自动禁用。我通过将seekbar b enabled设置为false实现了这一点。到目前为止,seekbar A允许我编辑textview 1,但我同时启用seekbar B和禁用seekbar A的方法不起作用。我将两个see

大家好,我有两个搜索栏A和B,他们编辑了两个文本视图1和2。A编辑1,B编辑2。我希望它能够工作,这样当用户触摸seekbar A时,seekbar B将被禁用,同样,当用户触摸seekbar B时,seekbar A将被禁用。但是,当应用程序启动时,seekbar B将自动禁用。我通过将seekbar b enabled设置为false实现了这一点。到目前为止,seekbar A允许我编辑textview 1,但我同时启用seekbar B和禁用seekbar A的方法不起作用。我将两个seekbar都设置为具有onclick侦听器。然后在click方法中,我使用了一个switch case语句来说明哪个seekbar是click,另一个seekbar被设置为enabled false

@Override
public void onClick(View v) {
    // TODO Auto-generated method stub

    switch(v.getId()){

        case R.id.seekbar_A:
            seekbarA.setEnabled(true);
            seekbarB.setEnabled(false);
            break;
        case R.id.seekbarB:
            seekbarA.setEnabled(false);
            seekbarB.setEnabled(true);
            break;
    }
}

这一切在理论上看起来不错,但当我运行应用程序时,seekbar B被禁用,seekbar A工作正常。但当我触摸seekbar B时,它不会启用,seekbar A也不会禁用。那么我该怎么做呢?

您可能需要设置每个seekbar的onSeekBarChange侦听器。它看起来有点像这样:

        SeekBar sb;
        sb.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });

无法单击已禁用的项目。。。(您可能仍然会收到onTouch事件)我正在使用它,正如上面的代码所示,我只是删掉了其中的一部分