0

好的,让我解释一下:

我有一个搜索栏和一个编辑文本框,搜索栏只从 0 到 100,当用户使用搜索栏并在编辑框中前进时,它也会显示进度,如果用户输入一个从 0 到 100 的数字,搜索栏会自动更新为编辑文本框中的数字。

这是代码:

EditText num1;
SeekBar Sb1;
num1=(EditText)findViewById(R.id.hoja1E2);
Sb1=(SeekBar) findViewById(R.id.seekBar1);
Sb1.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
    {
        @Override
        public void onStopTrackingTouch(SeekBar seekBar)
        {
        }
        @Override
        public void onStartTrackingTouch(SeekBar seekBar)
        {
        }
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
        boolean fromUser)
        {
        //---change the font size of the EditText---

            num1.setText(String.valueOf(progress));
        }
        });

        num1.addTextChangedListener(new TextWatcher(){

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

        }

        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

        }

        @Override
        public void afterTextChanged(Editable s) {
            try{
                //Update Seekbar value after entering a number
            Sb1.setProgress(Integer.parseInt(s.toString()));
            num1.setSelection(num1.getText().length());

            } catch(Exception ex) {}
        }
            });

现在我的问题是我想做同样的事情,但这次栏只从 o 变为 1,我更改了 seekbar 的部分代码,我将进度除以 100 这样它在edittextbox十进制数中显示,但我不知道如何引入十进制数并更新搜索栏,如果有些可以帮助我

4

1 回答 1

0

这应该有效:

int progress = Math.round(Float.parseFloat(s.toString()) * 100f);
Sb1.setProgress(progress);

注意:您需要进行大量验证

于 2013-08-14T15:21:09.160 回答