2017-01-03 20 views
1

我沒有太多的android經驗。我正試圖在android操作欄上實現搜索小部件。搜索欄出現,我可以輸入文本,但是當我按下提交按鈕時,我收到了這條消息。android onQuerySubmit()方法搜索部件給出錯誤

W/EGL_emulation:eglSurfaceAttrib沒有實現

W/OpenGLRenderer:無法設置EGL_SWAP_BEHAVIOR上表面 0x7fe63d9c1040,誤差= EGL_SUCCESS

這是我的代碼的部分

searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextChange(String query) { 
      System.out.println("In on Query text change"); 
      return true; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      System.out.println("In on Query text submit"); 
      return false; 
     } 
    }); 

根據輸入文本時的代碼,它會打印出「查詢文本更改」。但是,當我按提交它給出了上述錯誤。

編輯:

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    System.out.println("In the menu at main menu"); 
    getMenuInflater().inflate(R.menu.main_menu, menu); 

    MenuItem searchItem = menu.findItem(search); 
    SearchView searchView = (SearchView) searchItem.getActionView(); 


    SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); 

     searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); 
     //searchView.setIconifiedByDefault(false); 
     searchView.setSubmitButtonEnabled(true); 

    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
     @Override 
     public boolean onQueryTextChange(String query) { 
      System.out.println("In on Query text change"); 
      return true; 
     } 

     @Override 
     public boolean onQueryTextSubmit(String query) { 
      System.out.println("In on Query text submit"); 
      return false; 
     } 
    }); 
    return true; 
} 
+0

發佈您的整個代碼,其中u初始化搜索查看 –

+0

@Divyesh:我補充它在編輯區。 – denis

+0

我搜索了這個似乎與模擬器相關的錯誤,但我發現我的解決方案並不適合我。 – denis

回答

2

試試這個:

MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.search_view_menu, menu); 
     MenuItem searchItem = menu.findItem(R.id.action_search); 
     final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchItem); 
     searchView.setQueryHint("Search Products..."); 

     searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

      @Override 
      public boolean onQueryTextSubmit(String query) { 
       searchView.clearFocus(); 

       menu.findItem(R.id.action_search).collapseActionView(); 
       return true; 
      } 

      @Override 
      public boolean onQueryTextChange(String newText) { 
       return false; 
      } 

     }); 
     return super.onCreateOptionsMenu(menu); 
+0

可以請添加一些解釋。 – denis

+0

您在main_menu.xml中使用了v7搜索視圖? –

+0

感謝它的工作 – denis