如何检测搜索栏是否尚未移动并且没有值(然后发送吐司)

问题描述 投票:0回答:2

我如何检测搜索栏是否尚未移动(因此没有要显示的值)。

如果搜索栏尚未滑动(尚未显示数值),我想发送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) {

            }


        });

我使用https://github.com/woxingxiao/BubbleSeekBar

android android-seekbar android-toast
2个回答
0
投票

您可能需要等待n秒钟才能显示吐司。

您可以做的是创建一个计时器,以检查在此期间搜索栏是否已移动(或该值是否不为0)。

bubbleseekBar.postDelayed( ()-> {
         // do your checking to see if seek bar is moved
         if( bubbleseekbar.getProgress()==0){
             doShowToast();
         }
      } ,   DELAY_MILLIS );

0
投票

然后使用类似的方法检查用户是否触摸了搜索栏?

    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;
        }
    });          
© www.soinside.com 2019 - 2024. All rights reserved.