我如何检测搜索栏是否尚未移动(因此没有要显示的值)。
如果搜索栏尚未滑动(尚未显示数值),我想发送Toast消息。
以下是我的代码
bubbleseekBar.setOnProgressChangedListener(new BubbleSeekBar.OnProgressChangedListener() {
@Override
public void onProgressChanged(int progress, float progressFloat) {
progress = progress / 5000;
progress = progress * 5000;
rupiah = Double.parseDouble(String.valueOf((progress)));
kursindonesia = (DecimalFormat)
DecimalFormat.getCurrencyInstance();
formatRp = new DecimalFormatSymbols();
formatRp.setCurrencySymbol("Rp.");
formatRp.setMonetaryDecimalSeparator(',');
formatRp.setGroupingSeparator('.');
kursindonesia.setDecimalFormatSymbols(formatRp);
txtvalue.setText(String.valueOf(kursindonesia.format(rupiah)));
}
@Override
public void getProgressOnActionUp(int progress, float progressFloat) {
}
@Override
public void getProgressOnFinally(int progress, float progressFloat) {
}
});
您可能需要等待n秒钟才能显示吐司。
您可以做的是创建一个计时器,以检查在此期间搜索栏是否已移动(或该值是否不为0)。
bubbleseekBar.postDelayed( ()-> {
// do your checking to see if seek bar is moved
if( bubbleseekbar.getProgress()==0){
doShowToast();
}
} , DELAY_MILLIS );
然后使用类似的方法检查用户是否触摸了搜索栏?
boolean isTouched;
bubbleSeekBar.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (isTouched) {
//User has already touched the seekBar for the first time.
} else{
// User touches seekBar for the first time.
isTouched = true;
Toast.makeText(activityName.this, "Touched for first time", Toast.LENGTH_SHORT).show();
}
}
return true;
}
});