Android中搜索栏中的十进制值

Android中搜索栏中的十进制值,android,decimal,seekbar,android-seekbar,Android,Decimal,Seekbar,Android Seekbar,我正在开发android应用程序,其中我正在使用搜索栏。其中我的范围是0-20,起始值是5。对于数值,它可以正常工作,但是现在我想让它用于十进制值,但是范围应该是0.0到20.0。我的数字代码如下所示: SeekBar seek=(SeekBar) findViewById(R.id.seekBar1); seek.setProgress(5); seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener

我正在开发android应用程序,其中我正在使用搜索栏。其中我的范围是0-20,起始值是5。对于数值,它可以正常工作,但是现在我想让它用于十进制值,但是范围应该是0.0到20.0。我的数字代码如下所示:

SeekBar seek=(SeekBar) findViewById(R.id.seekBar1);
        seek.setProgress(5);
        seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub
        }
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {
        textView.setText( progress + " km");// + seekBar.getMax());
        distance = progress;
        }
        });
搜索栏的XML:

<TextView
            android:id="@+id/txtSeekBar"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginBottom="10dp"
            android:text="5 km"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/gray" />

你应该让你的进度在0到200之间,然后当它改变时,将当前进度乘以0.1f。干杯

SeekBar seek=(SeekBar) findViewById(R.id.seekBar1);
        seek.setProgress(5 * 10);


        seek.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {
                        // TODO Auto-generated method stub
        }
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {

        float currentProgress = progress * 0.1f;
        String yourprogress = String.format("%.1f", currentProgress);
        textView.setText( yourprogress + " km");// + seekBar.getMax());
        }
        });
在XML布局中,将其添加到进度栏

android:max="200"
当您想要获取进度时,也要乘以0.1f

float currentProgress = seekBar.getProgress() * 0.1f;

那么目前的结果是什么?@Bojab Kseneman感谢您的回复。你能根据我的情况在这里提供一个代码片段吗,它会帮助我。通过做上面的代码片段,它会给我这样的值:3.000001,3.1---4.0000001。4.1 . 而且它也从1开始,而不是像以前一样从5公里开始。请帮我解决这个问题。我已经修改了密码。抱歉,您需要正确设置进度的格式。你还必须用5乘以10才能确定
float currentProgress = seekBar.getProgress() * 0.1f;