2014-02-18 2 views
1

저는 며칠 동안 Android 캘린더와 씨름 해 왔으며 지금은 지혜로 끝나고 있습니다. 여기에있는 지침에 따라Xamarin.Android가있는 CalendarContract를 구현할 수 없습니다.

:

http://docs.xamarin.com/guides/android/user_interface/calendar/

나는 새로운 ICS 프로젝트를 시작 읽고 달력에 쓰기 권한을 추가했습니다. 위에 링크 된 지침에 따라 이제 "CalendarContract 클래스를 사용하여 캘린더 데이터와 상호 작용할 수 있어야합니다." 그러나, I 입력 예제 코드의 첫 번째 줄 : ". 이름 'CalendarContract'는 현재 컨텍스트에 존재하지 않는"

var calendarsUri =CalendarContract.Calendars.ContentUri; 

내가 말하는 오류가 CalendarDemo가 여기에 대한

나는 다운로드 샘플 코드가 있습니다

http://docs.xamarin.com/samples/CalendarDemo/

내가 프로젝트를 열고 코드를 조작, 내가 만든 것을 수정 내 테스트 장치에 배포 할 수 있으며 작동 아주. 문제는 프로젝트를 처음부터 만들면 "내 컨텍스트에 존재하는"CalendarContract 얻을 수없는 것입니다. CalendarListActivity.cs를 새 프로젝트에 추가하더라도 작동하지 않습니다. 이것은 제가 Xamarin Studio에서 코드를 통하지 않고 튜토리얼에 명시되지 않은 뭔가를 찾지 못했다고 생각하게합니다.

이 기능을 사용하기 위해 새 프로젝트 또는 기존 프로젝트에 추가해야 할 설정 또는 참조는 무엇입니까? 내가 생각할 수있는 모든 곳을 살펴 보았는데 필요한 스위치, 체크 박스, 참조 또는 필요한 것이 무엇이든 찾을 수 없습니다. 나는 이것을 알아 내려고 3 일을 구웠으며 나의 인내심을 잃었다.

답변

0

나는 당신이 가지고있는 오류를 재현 할 수있었습니다. 저는 Xamarin Studio에서 ICS 프로젝트를 만들고 같은 메시지를 받았습니다. 그런 다음 Visual Studio에서 솔루션을로드하고 CalendarDemo 프로젝트에 Mono.Android v4.0에 대한 참조가 있지만 Ice Cream Sandwich를 지정했지만 Xamarin Studio에서 만든 것은 Mono.Android v2.2를 참조한 것입니다. 그것이 당신이 만들 수없는 이유입니다.

프로젝트 옵션에서 대상 버전을 변경해도 아무 것도하지 않는 것 같습니다. 해결 방법은 .csproj 파일에

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion> 

을 추가하는 것입니다. 예를 들어 CalendarDemo 프로젝트를 참조하십시오.

BTW : 이것은 Xamarin Studio v4.2.2 (빌드 2)에 있습니다. 나는 일반적으로 Xamarin Studio를 사용하지 않기 때문에 이것을 다루지 않아도된다. XS의 버그인지는 확실치 않지만 확실한 동작은 아닙니다.

테스트와 마찬가지로 Xamarin Studio에서 다른 프로젝트를 만들었지 만 이번에는 표준 Android 애플리케이션 프로젝트를 선택했습니다. 놀랍게도 Mono.Android 4.3.0을 참조했습니다. Android Ice Cream Sandwich 프로젝트 템플릿에 버그가있는 것 같습니다.

앞으로 나올 표준 Android 애플리케이션 프로젝트를 사용하는 것이 좋습니다.

0

Xamarin Studio를 사용하는 경우 CalendarContact를 마우스 오른쪽 단추로 클릭하고 해결을 선택합니다. 두 가지 옵션이 제공됩니다. 먼저 Android.Provider를 사용하여 추가합니다. 두 번째 코드는 "Android.Provider.CalendarContract.Calendars.ContentUri"

... 코드를 추가하거나 수동으로 using 문을 추가합니다. :)

0

이 라이브러리

> using Android.Provider; 
> using Java.Util; 
를 가져와야합니다
관련 문제