Android开发 小弟我想设置edittext 输入完成后在调用监听方法

Android开发 我想设置edittext 输入完成后在调用监听方法
就是editText的监听事件 不要一变化就调用 要等输入完几秒钟 在调用。。。这个用什么方法去实现
求DEMO
------解决思路----------------------
例如这样:
public class MyEditText extends EditText{

private OnImputCompleteListener mOnImputCompleteListener;

public MyEditText(Context context) {
        super(context);
    }

    public MyEditText(Context context, AttributeSet attrs) {
       super(context, attrs);
    }

    public MyEditText(Context context, AttributeSet attrs, int defStyleAttr) {
       super(context, attrs, defStyleAttr);
    }

    @SuppressLint("NewApi")
public MyEditText(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
       super(context, attrs, defStyleAttr, defStyleRes);
    }

@Override
protected void onFocusChanged(boolean focused, int direction,
Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);

if (!focused) {
mOnImputCompleteListener.onImputComplete();
}
}

public void setOnImputCompleteListener(OnImputCompleteListener l) {
this.mOnImputCompleteListener = l;
}

}

interface OnImputCompleteListener {
void onImputComplete();
}


测试一下:
private MyEditText mEt;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_testet);

mEt = (MyEditText) findViewById(R.id.met1);
mEt.setOnImputCompleteListener(new OnImputCompleteListener() {

@Override
public void onImputComplete() {
Log.i("MyEditText_Test_tag", "imput is :"+mEt.getText().toString());
}
});


}

注意在布局代码中加一个能获取焦点的控件,不然,你懂得,谁去拿焦点呢,对吧。

引用:
如果说,你真的想利用焦点来做的话。我想这样做应当是可行的
继承edittext写一个子类。
重写onfocuschanged方法

Quote: 引用:

Quote: 引用:

Quote: 引用:

一般监听是用textwatcher,并注册该接口,显然这不符合需求,而题主所说的输入完成如何界定呢,如果使用控件产生消息,我想也不是题主要的。那么估计就只能是检测输入之后的时间了,如果一定时间字符串不再变化,那么就认为输入结束了。

另外,不用问我要代码。

建议继承edittext写一个子类,增加响应的成员函数成员变量。

目前我的代码是,当我输入数字的时候,多输入一个数字,就会调用一次接口。
这样给后台的压力太大了。现在就是 当我的焦点在EditText的时候,不让它调用接口。
当焦点不在EditText的时候调用接口也可以吧

试试等用户输入完后再处理。

@Override
public void afterTextChanged(Editable s) {
}