2015-04-03 35 views
0

我試圖根據傳遞的選擇參數來填寫城市名稱並返回匹配的城市。如何在android中過濾內容解析器查詢結果?傳遞選擇參數仍然不起作用

但是查詢調用仍然返回所有行。甚至試圖放入數據庫中不存在的虛假城市名稱,它仍然吐出相同的原始行。

public void addLocation(String cityName){ 
    Cursor cursor = mContext.getResolver().query(
      WeatherContract.LocationEntry.CONTENT_URI, 
      null, 
      WeatherContract.LocationEntry.COLUMN_LOCATION_SETTING + 
      " = " + cityName, 
      null, 
      null); 

我一遍又一遍,ContentResolver Query閱讀Android文檔,並通過選擇參數似乎沒有被做任何事情。

public final Cursor query (Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 

回答

0

不是在選擇參數中傳遞值,而是將它放在selectionArgs中。

public void addLocation(String cityName){ 
    String[] args = { cityName }; 
    Cursor cursor = mContext.getResolver().query(
      WeatherContract.LocationEntry.CONTENT_URI, 
      null, 
      WeatherContract.LocationEntry.COLUMN_LOCATION_SETTING + 
      " = ?", 
      args, 
      null); 
+0

已經嘗試過,它不起作用。即使傳遞selectionArgs是首選方法,我仍然想知道爲什麼我現在的查詢不起作用。 – nicknaky 2015-04-04 01:42:41

+0

你有權訪問提供者源代碼嗎?在這種情況下,您可以檢查是否以及如何使用這些參數。也許你需要使用不同的URI? – fejd 2015-04-04 10:26:48