2017-05-31 6 views
-2

私はAndroidマップアプリケーションを開発中です。クエリを入力すると通常正常に動作しますが、すべてのマーカーが突然表示されることがあります。クエリを入力した後、すべてのマーカーがマップに表示されるのはなぜですか?

私のコードにはどのような修正が必要ですか?

これは私のコードです:

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); 
関連する問題