0

我正在尝试实现一个转换单位的活动。我希望能够在五个字段之间进行即时转换。我不能简单地使用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() is undefined for the type 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);
4

1 回答 1

0

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

于 2013-12-08T11:50:53.297 回答