android转换小时到分钟

时间:2014-03-21 07:36:52

标签: android hour

    et1 = (EditText) findViewById(R.id.et1);
    et2 = (EditText) findViewById(R.id.et2);

    floatET1 = Float.parseFloat(et1.getText().toString());
    floatET2 = Float.parseFloat(et2.getText().toString());

    et1.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                float sonuc1 = floatET2 * 60;
                et2.setText(sonuc1);
            }
        }
    });

    et2.setOnFocusChangeListener(new OnFocusChangeListener() {

        public void onFocusChange(View v, boolean hasFocus) {
            if (hasFocus) {
                float sonuc2 = floatET1  / 60;
                et1.setText(sonuc2);

当我点击EditText(et2)然后我想计算到分钟,当我点击EditText(et1)然后转换为小时...但我不工作:/

4 个答案:

答案 0 :(得分:1)

您过早收到edittext内容。将涉及getText()的部分移动到焦点更改侦听器。

答案 1 :(得分:1)

这可以做你想要的,虽然你可能想要用吐司消息或其他东西通知用户,而不是在输入值不是有效字符串时悄悄地做什么。

et1 = (EditText) findViewById(R.id.et1);
et2 = (EditText) findViewById(R.id.et2);

et1.setOnFocusChangeListener(new OnFocusChangeListener() {

    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            try {
                floatET2 = Float.parseFloat(et2.getText().toString());
            } catch (NumberFormatException e) {
            }
            float sonuc1 = floatET2 * 60;
            et1.setText(String.valueOf(sonuc1));
        }
    }
});

et2.setOnFocusChangeListener(new OnFocusChangeListener() {

    public void onFocusChange(View v, boolean hasFocus) {
        if (hasFocus) {
            try {
                floatET1 = Float.parseFloat(et1.getText().toString());
            } catch (NumberFormatException e) {
            }
            float sonuc2 = floatET1 / 60;
            et2.setText(String.valueOf(sonuc2));
        }
    }
});

答案 2 :(得分:0)

您需要检查edittext的输入类型。 如果用户输入的值如1.6,那么您的代码无效。 因此,请确保提供输入类型,然后您可以根据逻辑来计算分钟数。

答案 3 :(得分:0)

你需要搬家:

 floatET1 = Float.parseFloat(et1.getText().toString());
 floatET2 = Float.parseFloat(et2.getText().toString());

进入每一个

public void onFocusChange(View v, boolean hasFocus) {

}

因为您需要在每次焦点更改时获取文本。

然后你应该将操作的结果转换为String(你试图在setTex()方法中设置一个浮点值):

et1.setText(""+sonuc2);
et2.setText(""+sonuc1);

et1.setText(sonuc2.toString());
et2.setText(sonuc1.toString());