0
正如標題所示,我在實現某個片段中的搜索小部件時遇到了問題。我的問題是,當我使用inflater膨脹自定義視圖內onCreateOptionsMenu和之後,我發現SearchView它始終爲空!
如果任何人有相同或相似的問題,我將不勝感激的一些解釋! :)
我敲我的頭這對於過去兩天......這裏是佈局:ActionBar Sherlock,Fragment and SearchWidget
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_search"
android:title="Search"
android:icon="@drawable/abs__ic_search"
android:showAsAction="always|collapseActionView"
android:orderInCategory="0"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"/>
<item android:id="@+id/menu_settings"
android:title="Settings"
android:icon="@drawable/jk_uma_button_settings_normal"
android:showAsAction="always"
android:orderInCategory="1"
/>
</menu>
代碼
Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_explore, menu);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if(hasFocus){
Log.i(TAG, "======================FOCUS TRUE============");
}else{
Log.i(TAG, "======================FOCUS FALSE===========");
}
}
});
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Log.i(TAG, "onCreate");
api_key = Configuration.get_prefereence_string(getActivity(), "user_activation_key", null);
user_id = Configuration.get_prefereence_string(getActivity(), "user_id", null);
setHasOptionsMenu(true);
}
你是一個生命的救星趕上硬件搜索按鈕按下!還有一個問題...當用戶點擊鍵盤上的搜索按鈕時如何捕捉?他在搜索視圖中寫入內容並單擊keboard上的搜索...如何捕獲它? – Jovan 2013-03-12 14:28:45
我發現它...它是setOnQueryTextListener ...我以某種方式跳過它......再次感謝人!!!! – Jovan 2013-03-12 14:31:47
更新了捕獲硬件搜索按鈕的答案。 – 2013-03-12 14:32:43