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



我有问题,我在工具栏上使用图标搜索,我想单击此图标搜索,它将移至新活动并在此处扩展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"

当您添加该行时,您的项目将以搜索视图的形式行为,甚至不响应

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;
}

希望这对您有帮助。

最新更新