我有一个SeekBar
,它执行特定任务。我想添加另一个SeekBar
与不同的任务。具有不同任务的两个不同查找条
我怎样才能把
seekbar.setOnSeekBarChangeListener(this);
独特的每个SeekBar
。现在当我触摸任何一个seekbar时,结果都是一样的。
我有一个SeekBar
,它执行特定任务。我想添加另一个SeekBar
与不同的任务。具有不同任务的两个不同查找条
我怎样才能把
seekbar.setOnSeekBarChangeListener(this);
独特的每个SeekBar
。现在当我触摸任何一个seekbar时,结果都是一样的。
你有几个选择:
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) {
}
}
你可以添加任何没有。 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
请粘贴一些代码来帮助回答问题,而不是链接到您的一个视频。 – Acapulco 2017-01-26 13:54:34
这是我的代码 – 2017-01-26 14:24:56
我很抱歉,但我是新来的 – 2017-01-26 14:46:31
我不知道如何访问onProgressChanged中的seekbar.getId()。没有工作! – 2013-03-17 23:07:38
有什么错误?这听起来像你可能试图在我给出的第一个示例中调用getId(),而不需要这样做。 它应该在第二个例子(不使用匿名类)上工作正常 – 2013-03-17 23:09:22
我试图使用seekbar.getId()并没有工作。但确切如果(seekBar == mySeekBar1)工作..谢谢 – 2013-03-17 23:14:50