Udacity Android 코스의 코드에서 어떤 일이 벌어지고 있는지 알고 싶습니다.안드로이드 - 계약 및 공급자 JOIN 상호 작용
URI 유형을 사용할 때 JOIN 문이 작동하지만 다른 유형의 URI를 사용하면 JOIN이 작동하지 않으며 이유를 이해할 수 없습니다. 내가 가입
1)의 작동 :
String sortOrder = WeatherContract.WeatherEntry.COLUMN_DATETEXT + " ASC";
mLocation = settings.getLocation();
Uri weatherForLocationUri = WeatherContract.WeatherEntry.buildWeatherLocationWithDate(
mLocation, DATE_KEY);
Log.e("URI_REQUISITE", weatherForLocationUri.toString());
return new CursorLoader(
getActivity(),
weatherForLocationUri,
new String[] {
WeatherContract.WeatherEntry.COLUMN_SHORT_DESC,
WeatherContract.WeatherEntry.COLUMN_MAX_TEMP,
WeatherContract.WeatherEntry.COLUMN_MIN_TEMP,
WeatherContract.WeatherEntry.COLUMN_HUMIDITY,
WeatherContract.WeatherEntry.COLUMN_WIND_SPEED,
WeatherContract.WeatherEntry.COLUMN_WEATHER_ID,
WeatherContract.WeatherEntry.COLUMN_PRESSURE,
WeatherContract.WeatherEntry.COLUMN_DEGREES,
WeatherContract.LocationEntry.COLUMN_LOCATION_SETTINGS // <- this row is the problem
//^ this row is the problem
},
null,
null,
sortOrder
);
2-) 나는 그것이 작동하지 않습니다 가입 할 때 :
String sortOrder = WeatherContract.WeatherEntry.COLUMN_DATETEXT + " ASC";
return new CursorLoader(
getActivity(),
WeatherContract.LocationEntry.CONTENT_URI,
new String[] {
WeatherContract.WeatherEntry.COLUMN_SHORT_DESC,
WeatherContract.WeatherEntry.COLUMN_MAX_TEMP,
WeatherContract.WeatherEntry.COLUMN_MIN_TEMP,
WeatherContract.WeatherEntry.COLUMN_HUMIDITY,
WeatherContract.WeatherEntry.COLUMN_WIND_SPEED,
WeatherContract.WeatherEntry.COLUMN_WEATHER_ID,
WeatherContract.WeatherEntry.COLUMN_PRESSURE,
WeatherContract.WeatherEntry.COLUMN_DEGREES,
WeatherContract.LocationEntry.COLUMN_LOCATION_SETTINGS // <- this row is the problem
//^ this row is the problem
},
WeatherEntry.COLUMN_DATETEXT+" = ?",
new String []{DATE_KEY},
sortOrder
);
당신은 WeatherContract.LocationEntry.COLUMN_LOCATION_SETTING
를 볼 수있는 두 번째 예에서는 발견되지 않는 내 응용 프로그램이 충돌합니다!
첫 번째 예가 WeatherContract.LocationEntry.COLUMN_LOCATION_SETTING
인 이유는 무엇이며 두 번째 예는 그렇지 않은 이유는 무엇입니까?
쉽게,이 내 WeatherContract 내 WeatherProvider입니다 :