Android SeekBar需要一个可多次单击的Ticker
我有一个seekBar,并希望有一个简单的增量为1的股票代码按钮。到目前为止,我的文本只更新一次。但是,如果我的seekBar被更改,我可以再次勾选+1。如果您想查看更多代码,请告诉我。其他一切都可以正常工作Android SeekBar需要一个可多次单击的Ticker,android,onclick,onclicklistener,seekbar,Android,Onclick,Onclicklistener,Seekbar,我有一个seekBar,并希望有一个简单的增量为1的股票代码按钮。到目前为止,我的文本只更新一次。但是,如果我的seekBar被更改,我可以再次勾选+1。如果您想查看更多代码,请告诉我。其他一切都可以正常工作 ib2.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { int addOne = 1;
ib2.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
int addOne = 1;
progress = seekBar.getProgress();
progress = progress + addOne;
if(progress < 18)
textView1.setText(": "+ 18);
textView1.setText(": " + progress);
ib2.setClickable(true);
}
});
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
{
@Override
public void onProgressChanged(SeekBar seekBar,int progresValue, boolean fromUser)
{
progresValue = 18;
progress = progresValue;
if(progress < 18)
{
progress = 18;
textView1.setText(": "+ progress);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar)
{
textView1.setText(": ");
progress= seekBar.getProgress();
textView1.setText(": " + progress);
}
@Override
public void onStopTrackingTouch(SeekBar seekBar)
{
if(seekBar.getProgress() < 18)
{
progress = 18;
textView1.setText(": " + progress );
}
else
{
textView1.setText(": " + seekBar.getProgress());
}
}
});
您的问题是,您在递增SeekBar后忘记设置其进度。您必须添加:
seekBar.setProgress(progress);
在onClick方法的末尾
顺便说一句,您的代码可以简化很多,下面的代码与您的代码完全相同,但方式更短:
ib2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
seekBar.setProgress(seekBar.getProgress() + 1);
}
});
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar,int progresValue, boolean fromUser) {
if(progresValue < 18) {
textView1.setText(": "+ 18);
} else {
textView1.setText(": "+ progresValue);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
textView1.setText(": " + seekBar.getProgress());
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {}
});
为什么在onProgressChanged方法的开头将ProgressValue设置为18?我正在尝试设置最小值。我不希望值低于18。这段代码是在一段时间后我随机猜测和检查的地方复制粘贴的,所以其中一些可能没有意义。我已经编辑了我的答案,并添加了您代码的简化版本。它应该更容易理解和使用。希望它能帮助你。再次感谢!无论如何,是否要在18时启动搜索栏?在实际条上?您不能设置SeekBar的最小值,该值始终从0开始。但是,每次获得或设置进度时,您可以添加18。这个偏移将使你的搜索杆在18开始。请记住,这也会使你的最大值增加18。如果需要,可以在XML定义中或以编程方式设置最大值。