SearchView 侦听 IME 操作
SearchView listen for IME actions
如何监听 SearchView
上的 IME 操作?因为它不是 EditText
.
的子类
我想做的是当用户按下键盘上的"enter"键时没有输入任何文字
没有文本的问题是 OnQueryTextListener.onQueryTextSubmit()
只有在用户输入文本时才会触发。
如何获取搜索视图的 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;
}
});
使用androidx.appcompat.widget.SearchView
,您可以使用:
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
return true
}
override fun onQueryTextChange(newText: String): Boolean {
return true
}
})
如何监听 SearchView
上的 IME 操作?因为它不是 EditText
.
我想做的是当用户按下键盘上的"enter"键时没有输入任何文字
没有文本的问题是 OnQueryTextListener.onQueryTextSubmit()
只有在用户输入文本时才会触发。
如何获取搜索视图的 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;
}
});
使用androidx.appcompat.widget.SearchView
,您可以使用:
setOnQueryTextListener(object : SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String): Boolean {
return true
}
override fun onQueryTextChange(newText: String): Boolean {
return true
}
})