繁体   English   中英

单击图标搜索时如何进行其他活动

[英]How to intent to other activity when icon search clicked

我有问题,我在工具栏上使用图标搜索,我想单击此图标搜索,它将移动到新活动并在此处展开​​editview搜索,但是我的代码无法实现

我的课(首次活动):

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main_menu_icon_toolbar, menu);
    // Retrieve the SearchView and plug it into SearchManager
    return super.onCreateOptionsMenu(menu);
}
 @Override
 public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    if(item.getItemId()==R.id.action_search){
        Intent i = new Intent(this,SearchCarActivity.class);
        startActivity(i);
        return true;
    }
    return super.onOptionsItemSelected(item);
}

我的layout_activity:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<!-- NavigationDrawer Menu -->
<item android:id="@+id/action_search"
    android:title="Search"
    app:showAsAction="always"
    android:icon="@drawable/ic_action_name_search"
    app:actionViewClass="android.support.v7.widget.SearchView"
    />
</menu>

我的搜索活动(第二个活动):

public class SearchCarActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.search_car_menu, menu);
    SearchView searchView =
            (SearchView) menu.findItem(R.id.search).getActionView();
    searchView.setIconified(false);
    return super.onCreateOptionsMenu(menu);
 }
}

我的search_car_menu.xml:

<?xml version="1.0" encoding="utf-8"?>

<item
    android:id="@+id/search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="Search"
    app:showAsAction="always"
    app:actionViewClass="android.support.v7.widget.SearchView"/>

它不会移至第二项活动,但似乎在第一项活动中仍能达到目标

单击工具栏上的图标搜索时,如何才能转到第二项活动?

谢谢

我创建了一个测试项目,并在您说的第一个活动中单击搜索图标后添加了您的代码,然后打开第二个活动并在那里进行搜索

从您的layout_activity中删除这一行就可以了:

app:actionViewClass="android.support.v7.widget.SearchView"

当您添加该行时,您的项目将表现为SearchView,甚至不会响应

public boolean onOptionsItemSelected(MenuItem item)

一种解决方案是在相同的活动中执行此操作。

设置输入查询文本的侦听器

searchView.setOnQueryTextListener(MyActivity.this);

并使用此接口SearchView.OnQueryTextListener实现MyActivity

该接口提供2个回调方法:

@Override
public boolean onQueryTextSubmit(String query) {
//get this query and search on server
}
@Override
public boolean onQueryTextChange(String newText) {
    return false;
}

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM