2012-02-09 29 views

答えて

0

私は簡単な例がhereで、内蔵コンテンツプロバイダを使用して、デバイスからのすべての連絡先をリストにリストアップしています。

試料の本当の肉はこれです:

_list = FindViewById<ListView>(Resource.Id.contact_list); 

var contacts = ManagedQuery(ContactsContract.Contacts.ContentUri, null, null, null, null); 

_list.Adapter = 
    new SimpleCursorAdapter(
     this, 
     Resource.Layout.contacts_item, 
     contacts, 
     new string[] { ContactsContract.ContactsColumnsConsts.DisplayName }, 
     new int[] { Resource.Id.contact_name }); 

ManagedQuery方法(この場合、コンタクト)提供されたコンテンツプロバイダに照会し、その結果でカーソルを返します。このメソッドの他の引数を使用して選択基準を指定することができます。ここでは、すべてにnullを指定すると、すべての連絡先が返されます。

また、Xamarinは現在、プレビュー中で、連絡先データ(およびその他のもの)にアクセスするためのいくつかのより良い方法を提供しています(Xamarin.Mobile API)。

+0

残念ながら私はこのAndroid Devでまだ新しいです。コードグレッグありがとうが、私はまだ若干の問題がある Resource.Layout.contacts_item contacts_itemがResourcesファイル内に見つからず、そのリソースが生成されたファイルであることが分かったので、これは壊れています。この問題を解決する方法ありがとうございました。 – nnyamhon

+0

右のスニペットは、アプリケーションの他の部分(リンクにも含まれています)に依存します。たとえば、リソースファイルは次の場所にあります。https://github.com/gshackles/Sample-Projects/tree/master/MonoDroid/MonoDroidSamples/MonoDroidSamples/Resources/layout –