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