2016-11-23 68 views
0

我遇到問題,我在工具欄上使用圖標搜索,我想點擊這個圖標搜索,它會移動到新的活動並在此處展開​​editview搜索,但是我的代碼可以不achive如何在點擊圖標搜索時進行其他活動

我班(第一項活動):

@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"/> 

但這並沒有移動到第二個活動,它似乎仍然achive在第一個活動

如何當我點擊ico時,我可以歸功於第二項活動在工具欄上搜索?

感謝

+0

請檢查您的菜單文件名與充氣的菜單文件。 –

回答

2

我創建了一個測試項目從什麼你說你要點擊搜索圖標上的第一個活動,然後打開第二個活動,做搜索有

刪除添加的代碼 這條線從layout_activity的伎倆:

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

當您添加該行的項目將表現爲一個搜索查看,而不是甚至

迴應
public boolean onOptionsItemSelected(MenuItem item) 
+0

它改變了我的工作:app:actionViewClass =「android.support.v7.widget.SearchView」,非常感謝! –

+0

太棒了,樂意幫忙;) –

0

一個解決方案是在同一活動中完成。

設置監聽輸入查詢文本

searchView.setOnQueryTextListener(MyActivity.this); 

和實施MyActivity這個接口SearchView.OnQueryTextListener

該接口提供了2種回調方法:

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

希望這有助於你。

+0

謝謝,我懂了 –