Chr*_*ers 11 android onclick searchview
我有一个searchView,看起来像这样:
private void setupSearchView() {
mSearchView = (SearchView) getActivity().findViewById(
R.id.search_view_neue);
setSearchViewBackground();
mSearchView.setOnClickListener(this);
mSearchView.setOnQueryTextListener(this);
}
public boolean onQueryTextSubmit(String query) {
searchcounter = searchcounter + 1;
setSearchViewBackground();
ArrayList<WissensdokumenteRecord> documents = settingListContent(new ArrayList<WissensdokumenteRecord>());
setListAdapter(new NeueWissensdokumentItemAdapter(
inflater.getContext(), R.layout.row_example, documents));
InputMethodManager im = (InputMethodManager) getActivity()
.getSystemService(Context.INPUT_METHOD_SERVICE);
im.hideSoftInputFromWindow(getActivity().getCurrentFocus()
.getWindowToken(), 0);
return false;
}
<SearchView
android:id="@+id/search_view_neue"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginLeft="40dp"
android:layout_marginRight="40dp"
android:background="@drawable/border_searchview"
android:maxWidth="540dp"
android:queryHint="Neue Dokumente suchen" >
</SearchView>
Run Code Online (Sandbox Code Playgroud)
因此,搜索视图的行为是,通过单击搜索按钮打开键盘.现在我可以搜索一些东西了.是否可以通过点击搜索视图中的任意位置进行搜索?有没有人有我的榜样?
Spi*_*iri 13
我设法通过以下方式执行此操作:
在单击侦听器上设置搜索视图
mSearchView.setOnClickListener(this);
Run Code Online (Sandbox Code Playgroud)
抓住onClick事件:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.searchView:
mSearchView.onActionViewExpanded();
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这样,如果单击搜索栏上的antwhere,将激活键盘和搜索.
我必须建议使用setOnSearchClickListener监听器来检测SearchView点击,根据Android文档:
设置搜索点击监听器
void setOnSearchClickListener (View.OnClickListener 监听器)
设置监听器以在按下搜索按钮时发出通知。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.menu.orders_menu, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
if (searchView != null) {
searchView = (SearchView) searchItem.getActionView();
searchView.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//perform your click operation here
}
});
return true;
}
Run Code Online (Sandbox Code Playgroud)
这将完全满足您要实现的目标。
setIconified(false)会将十字形图标保留在SearchView的此端,以便用户仍可以按与单击放大镜相同的方式取消。
searchView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchView.setIconified(false);
}
});
Run Code Online (Sandbox Code Playgroud)
我不明白为什么你需要在其上设置 OnClickListener 。通过单击 SearchView,您将更新文本光标。要执行搜索,您需要执行键盘 IME 操作。如果单击它将执行搜索,则无法更改光标等。在文本字段中进行除焦点/更新光标之外的其他操作通常是错误的行为。
据我记得 - 你不需要在 OnQueryTextListener 中隐藏键盘。它应该会自动命中。在 OnQueryTextSubmit 中处理您的搜索
使用 Sherlock ActionBar SearchView setOnKeyListener 进行搜索
| 归档时间: |
|
| 查看次数: |
21094 次 |
| 最近记录: |