这是一个常用的功能,代码也很简单,不需要什么自定义之类的。那让我来看看先看看xml布局:
然后再让我们来看看代码:
public class MainActivity extends Activity {
EditText serchEditText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
serchEditText= (EditText) findViewById(R.id.edt_search);
//serchEditText的点击事件
serchEditTextOclick();
}
private void serchEditTextOclick(){
//点击软键盘的完成或搜索 关闭软键盘 并从服务器获得数据
serchEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId== EditorInfo.IME_ACTION_SEARCH ||
actionId==EditorInfo.IME_ACTION_GO ||
actionId==EditorInfo.IME_ACTION_DONE){
InputMethodManager inputMethodManager= (InputMethodManager)
v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.
hideSoftInputFromWindow(v.getApplicationWindowToken(),0);
}
if(!TextUtils.isEmpty(serchEditText.getText())){
//做相关操作
}else {
}
return true;
}
return false;
}
});
//这是点击搜索 小图标的响应事件
serchEditText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
boolean touchable = event.getX() > (v.getWidth() -
((TextView)v).getTotalPaddingRight()-20)
&& (event.getX() < ((v.getWidth() -
((TextView)v).getPaddingRight())));
if (touchable) {
//联网获得数据
if(!TextUtils.isEmpty(serchEditText.getText())){
//做相关处理
}else {
}
//软件盘消失
InputMethodManager inputMethodManager= (InputMethodManager)
v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
if(inputMethodManager.isActive()){
inputMethodManager.toggleSoftInput(0,
InputMethodManager.HIDE_NOT_ALWAYS);
}
}
}
return false;
}
});
//监听输入的事件 若输入为空 listview为空
serchEditText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (TextUtils.isEmpty(serchEditText.getText().toString())) {
}
}
});
}
}
demo的链接地址如下:
http://download.youkuaiyun.com/detail/jimtrency/9593038