如果文本更改且具有焦点,则更新字段

时间:2013-11-06 12:14:25

标签: android focus android-edittext textwatcher

我正在尝试实现一个转换单位的活动。有五个字段我希望能够在运行中进行转换。我不能简单地使用TextWatcher,因为当我更改字段时,会更改所有其他字段并导致循环调用崩溃。

我查看了OnFocusChangeListener,但只有在焦点发生变化时才有效,而我希望动态更新。

然后我认为我可以将两者结合起来,所以我有TextWatcher并且我把它放在里面

public void afterTextChanged(Editable s)
        {
            if (convert_kg.hasfocus())
                {
                if (convert_kg.getText().toString().matches("")) sums=0.0;  
                else sums=Double.parseDouble(convert_kg.getText().toString());

                answer=(int)Math.round(sums*2.205);
                convert_lbs.setText(String.format("%d", answer));
                    }
         }

但我收到错误方法hasfocus()未定义类型EditText

这些是我的进口商品:

import android.os.Bundle;
import android.app.Activity;
import android.view.View;
import android.widget.TextView;
import android.widget.EditText;
import android.text.Editable;
import android.text.TextWatcher;

据我所知http://developer.android.com/reference/android/widget/EditText.html它应该得到支持吗?我确定这很简单但有任何想法吗?

编辑:如果有人想知道所有字段都是EditText

convert_kg=(EditText)findViewById(R.id.convert_kg);

1 个答案:

答案 0 :(得分:0)

查看评论。 isFocused()是我需要使用的方法。