2013-03-17 56 views
0

我有一个SeekBar,它执行特定任务。我想添加另一个SeekBar与不同的任务。具有不同任务的两个不同查找条

我怎样才能把

seekbar.setOnSeekBarChangeListener(this); 

独特的每个SeekBar。现在当我触摸任何一个seekbar时,结果都是一样的。

回答

0

你有几个选择:

1)通常的做法是使用匿名类。就像这样:

curSlider.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
       Log.d("slider","stop tracking"); 

      } 

      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 

      } 

      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, 
        boolean fromUser) { 


      } 
     }); 

2)如果你想使用this,你需要使用一些逻辑来找出哪些SeekBar被移动(使用IDS或对象引用)。像:

public void onProgressChanged(SeekBar seekBar, int progress, 
        boolean fromUser) { 
    if (seekBar == mySeekBar1) { 

    } else if (seekBar == mySeekBar2) { 

    } 

} 
+0

我不知道如何访问onProgressChanged中的seekbar.getId()。没有工作! – 2013-03-17 23:07:38

+0

有什么错误?这听起来像你可能试图在我给出的第一个示例中调用getId(),而不需要这样做。 它应该在第二个例子(不使用匿名类)上工作正常 – 2013-03-17 23:09:22

+0

我试图使用seekbar.getId()并没有工作。但确切如果(seekBar == mySeekBar1)工作..谢谢 – 2013-03-17 23:14:50

-2

你可以添加任何没有。 seekbars每一个的做一些事情 我有3个seekbars每一个示例代码发送其进步价值,一起创建一个COLORE设置为背景的ImageView

import android.app.Activity; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.widget.ImageView; 
import android.widget.SeekBar; 
public class MainActivity extends Activity { 
    SeekBar seekBar1, seekBar2, seekBar3; 
    ImageView imageView; 
    public int pro1,pro2,pro3; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     imageView = (ImageView) this.findViewById(R.id.imageView); 
     seekBar1 = (SeekBar) this.findViewById(R.id.seekBar1); 
     seekBar2 = (SeekBar) this.findViewById(R.id.seekBar2); 
     seekBar3 = (SeekBar) this.findViewById(R.id.seekBar3); 
     seekBar1.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
       pro1= progress; 
       imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3)); 
      } 
      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
      } 
      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
      } 
     }); 
     seekBar2.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
       pro2= progress; 
       imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3)); 
      } 
      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
      } 
      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
      } 
     }); 
     seekBar3.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { 
      @Override 
      public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { 
       pro3=progress; 
       imageView.setBackgroundColor(Color.argb(200, pro1, pro2, pro3)); 
      } 
      @Override 
      public void onStartTrackingTouch(SeekBar seekBar) { 
      } 
      @Override 
      public void onStopTrackingTouch(SeekBar seekBar) { 
      } 
     }); 
    } 
} 

此YouTube https://youtu.be/AM6lJnze9nA

+0

请粘贴一些代码来帮助回答问题,而不是链接到您的一个视频。 – Acapulco 2017-01-26 13:54:34

+0

这是我的代码 – 2017-01-26 14:24:56

+0

我很抱歉,但我是新来的 – 2017-01-26 14:46:31

相关问题