0
如何在SearchView
上监听输入法操作?由于它不是EditText
的子类。SearchView监听输入法操作
我想要做的是处理当用户按下键盘上的“输入”键并且没有输入文本。
没有文字的问题是OnQueryTextListener.onQueryTextSubmit()
只有在用户输入文字时才会触发。
如何在SearchView
上监听输入法操作?由于它不是EditText
的子类。SearchView监听输入法操作
我想要做的是处理当用户按下键盘上的“输入”键并且没有输入文本。
没有文字的问题是OnQueryTextListener.onQueryTextSubmit()
只有在用户输入文字时才会触发。
如何获取searchview的EditText并使用OnEditorAction?
final SearchView searchView = (SearchView) findViewById(R.id.searchView);
int searchViewPlateId = searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null);
EditText searchPlateEditText = (EditText) searchView.findViewById(searchViewPlateId);
searchPlateEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
if(!TextUtils.isEmpty(v.getText().toString())){
//Text entered
}
else {
//no string
}
}
return true;
}
});
完美地工作。我建议在'searchPlateEditText'周围加一个'null'检查,以防止未来的内部设计更改,因为我们使用的是未公开的代码。由于他们不暴露他们的EditText,他们可能会在任何时候改变它的标识符。 –