Android SearchView图标作为搜索按钮

Android SearchView图标作为搜索按钮,android,searchview,Android,Searchview,我有一个SearchView,通过在软键盘中输入ENTER键,它可以很好地工作,我希望搜索输入中显示的搜索图标也可以用作搜索按钮,类似于下图:(这不是设计样式,只是使放大镜图标可点击) 可能吗 最后,我可以通过R.id.search\u mag\u icon访问搜索视图中的默认mag图标并设置OnClickListener来解决这个问题。这不是干净的代码,但至少对我来说是有效的 搜索活动: protected void onCreate(Bundle savedInstanceState) {

我有一个SearchView,通过在软键盘中输入ENTER键,它可以很好地工作,我希望搜索输入中显示的搜索图标也可以用作搜索按钮,类似于下图:(这不是设计样式,只是使放大镜图标可点击)


可能吗

最后,我可以通过
R.id.search\u mag\u icon
访问搜索视图中的默认mag图标并设置OnClickListener来解决这个问题。这不是干净的代码,但至少对我来说是有效的

搜索活动:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_search);
    final Intent intent = getIntent();
    listView=(ListView)findViewById(R.id.simple_list);
    final SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
    searchView = (SearchView) findViewById(R.id.sv);
    searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName()));
    ImageView magImage = (ImageView) findViewById(R.id.search_mag_icon);
    magImage.setImageResource(R.drawable.search);
    magImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent intentSelected = new Intent(SearchActivity2.this, SearchActivity2.class);
            intentSelected.setAction(Intent.ACTION_SEARCH);
            CharSequence query = searchView.getQuery();
            intentSelected.setData(Uri.parse( query.toString() ));
            intentSelected.putExtra("QUERY", query.toString());
            startActivity(intentSelected);
            hideKeyboard(SearchActivity2.this);
            finish();
        }
    });
    if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
        String query = intent.getStringExtra(SearchManager.QUERY);
        String button_query = intent.getStringExtra("QUERY");
        if(query==null && button_query!=null)
            query = button_query;
        if(query!=null) {
            searchView.setQuery(query, false);
            headers = db.doSearch(query);
            dataModels = new ArrayList<>();
            dataModels = setListItems(headers);
            adapter = new CustomListAdapter(dataModels, getApplicationContext());
            listView.setAdapter(adapter);
            listView.setEmptyView(findViewById(R.id.iv_noresult));
        }
    }
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u search);
最终意图=getIntent();
listView=(listView)findViewById(R.id.simple\u列表);
最终SearchManager SearchManager=(SearchManager)getSystemService(Context.SEARCH\u服务);
searchView=(searchView)findViewById(R.id.sv);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName());
ImageView magImage=(ImageView)findViewById(R.id.search\u mag\u图标);
magImage.setImageResource(R.drawable.search);
magImage.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Intent intentSelected=新意图(SearchActivity2.this,SearchActivity2.class);
intentSelected.setAction(Intent.ACTION\u SEARCH);
CharSequence query=searchView.getQuery();
intentSelected.setData(Uri.parse(query.toString());
intentSelected.putExtra(“QUERY”,QUERY.toString());
起始触觉(意向选择);
隐藏板(SearchActivity2.this);
完成();
}
});
if(Intent.ACTION_SEARCH.equals(Intent.getAction())){
String query=intent.getStringExtra(SearchManager.query);
字符串按钮_query=intent.getStringExtra(“查询”);
if(query==null&&button\u query!=null)
查询=按钮\查询;
if(查询!=null){
setQuery(查询,false);
headers=db.doSearch(查询);
dataModels=新的ArrayList();
dataModels=setListItems(标题);
adapter=新的CustomListAdapter(数据模型,getApplicationContext());
setAdapter(适配器);
setEmptyView(findViewById(R.id.iv_noresult));
}
}
检查此处->