首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Seekbar听者

Seekbar听者
EN

Stack Overflow用户
提问于 2014-03-04 17:50:30
回答 3查看 382关注 0票数 0

谢谢你们帮我解决这个问题..。我相信大部分问题都解决了,但是有两个新的错误.我太抱歉了。

代码语言:javascript
复制
public class MainActivity extends Activity {
private RadioGroup rgsexo;
EditText editPeso;
EditText editAltura;
TextView imcView;
SeekBar alterarAltura;
SeekBar alterarPeso;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    alterarAltura.setOnSeekBarChangeListener(alteraralturaListener);
    editPeso = (EditText)findViewById(R.id.editPeso);
    editAltura = (EditText)findViewById(R.id.editAltura);
    imcView = (TextView)findViewById(R.id.imcView);
    alterarAltura = (SeekBar)findViewById(R.id.alterarAltura);
    alterarPeso = (SeekBar)findViewById(R.id.alterarPeso);
    alterarAltura.setOnSeekBarChangeListener(alteraralturaListener);

}

private OnSeekBarChangeListener alteraralturaListener = new OnSeekBarChangeListener() {

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,
    boolean fromUser) {
        // TODO Auto-generated method stub
        // Calcula o novo valor do TIP
        editAltura=(alterarAltura.getProgress()) * .01;
        // mostra na caixa o valor novo
        alterarAltura.setText(String.format("%.02f", editAltura).replace(',', '.'));
    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {

    }
};

错误是

"editAltura=(alterarAltura.getProgress()) * .01;“类型不匹配,无法将编辑文本转换为双重

"alterarAltura.setText(String.format("%.02f",editAltura).replace(',',‘.’);“setText(String)的方法对于SeekBar类型未定义

我做错了什么吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-03-04 18:03:12

首先,将您的活动代码重新排列如下,然后说明您所面临的问题。

代码语言:javascript
复制
public class MainActivity extends Activity {
    private RadioGroup rgsexo;
    EditText editPeso;
    EditText editAltura;
    TextView imcView;
    SeekBar alterarAltura;
    SeekBar alterarPeso;
    alterarAltura.setOnSeekBarChangeListener(alteraralturaListener);

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        setContentView(R.layout.your_layout);

        editPeso = (EditText)findViewById(R.id.editPeso);
        editAltura = (EditText)findViewById(R.id.editAltura);
        imcView = (TextView)findViewById(R.id.imcView);
        alterarAltura = (SeekBar)findViewById(R.id.alterarAltura);
        alterarPeso = (SeekBar)findViewById(R.id.alterarPeso);
        alterarAltura.setOnSeekBarChangeListener(alteraralturaListener);

    }

    private OnSeekBarChangeListener alteraralturaListener = new OnSeekBarChangeListener() {

        @Override
        public void onProgressChanged(SeekBar seekBar, int progress,
        boolean fromUser) {
            // TODO Auto-generated method stub
            // Calcula o novo valor do TIP
            editAltura=(alterarAltura.getProgress()) * .01;
            // mostra na caixa o valor novo
            alterarAltura.setText(String.format("%.02f", editAltura).replace(',', '.'));
        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }
    };
}
票数 0
EN

Stack Overflow用户

发布于 2014-03-04 17:53:44

alterarAltura.setOnSeekBarChangeListener(alteraralturaListener);需要在一个方法中(比如onCreate(...))。

票数 2
EN

Stack Overflow用户

发布于 2014-03-04 20:18:36

您设置了错误的变量: alterarAltura是一个SeekBar。将此复制到onProgressChanged中:

代码语言:javascript
复制
double myDouble = (alterarAltura.getProgress()) * .01d;
// mostra na caixa o valor novo
editAltura.setText(String.format("%.02f", myDouble).replace(',', '.'));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22179294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档