Android EditText和addTextChangedListener

7

我目前正在将一个数据库管理器移植到Android平台,由于性能原因,我希望仅更新已修改的属性。为此,我尝试使用addTextChangedListener监听文本变化,将修改后的条目添加到列表中,但我的程序从未进入任何方法。

EditText Et = (EditText) Editors.get(Prop.Name);
Et.addTextChangedListener(new TextWatcher() {
    @Override
    public void afterTextChanged(Editable s) {
        // TODO Auto-generated method stub
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
        // TODO Auto-generated method stub
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        // TODO Auto-generated method stub
        if(Prop.GetType() == Property.PROPTYPE.num) {
            float f = Float.parseFloat(s.toString());
            Prop.FromString(f);
        }
        else {
            Prop.FromString(s.toString());
        }
        propertiesToUpdate.add(Prop);
});
Et.setText(Prop.ToString());

1
onTextChanged 结尾是否缺少 }? - banzai86
代码不完整,无法理解您的问题。编辑文本是否放置在ListView内? - Shardul
https://dev59.com/Lm025IYBdhLWcg3wAg_p - max4ever
1个回答

4
为什么要这样获取EditText实例?因为它是您的活动布局的一部分,所以您应该像这样获取它:
EditText Et = (EditText) findViewById(R.id.your_id);

我认为问题在于你持有一个 EditText 的引用,该 EditText 不属于你的 Activity 布局,因此你将监听器附加到了错误的视图上。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接