2017-05-31 105 views
-2

我正在使用Android Map應用程序。當我輸入查詢時,它通常工作正常,但有時候所有標記都會意外出現。爲什麼輸入查詢後所有標記都顯示在地圖上?

我需要對我的代碼進行哪些更正?

這是我的代碼:

mSearchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 

    private String TAG = getClass().getSimpleName(); 

    @Override 
    public boolean onQueryTextChange(String queryText) { 
     Log.d(TAG, "onQueryTextChange = " + queryText); 
     //Toast.makeText(MapActivity.this, "Change: " + queryText, Toast.LENGTH_SHORT).show(); 
     addMarkers(queryText); 

     return true; 
    } 

    @Override 
    public boolean onQueryTextSubmit(String queryText) { 
     Log.d(TAG, "onQueryTextSubmit = " + queryText); 
     //Toast.makeText(MapActivity.this, "Change: " + queryText, Toast.LENGTH_SHORT).show(); 
     addMarkers(queryText); 

     if (mSearchView != null) { 
      InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 

      if (imm != null) { 
        imm.hideSoftInputFromWindow(mSearchView.getWindowToken(), 0); 
      } 

      mSearchView.clearFocus(); 
     } 

     return true; 
    } 
}); 

回答

2

我猜的情況是,當你刪除所有的查詢文本,該queryText變得""。然後所有的標記都顯示出來,因爲它們都包含""

嘗試這段代碼添加到您的OnQueryTextListener的方法:

if (!queryText.equals("")) addMarkers(queryText); 
相關問題