[]「型 Contacts.People は使用すべきではありません」の解決法

スポンサーリンク

SDK1.5がメインの本で勉強していたら、Contacts.Peopleの使用で怒られちゃいました。

型 Contacts.People は使用すべきではありません

理由としては非推奨になってるからみたいですね。

解決方法は、その代替として用意されているContacsContract.Contactsの使用をすれば問題ないとのこと。
若干定数の名前とかが変更されているので、その点に注意して置き換えれば基本的に問題なく使えます。

参考に、変更前と変更後のソースのご紹介

Peopleを使った時


import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.Contacts.People;
import android.widget.ListAdapter;
import android.widget.SimpleCursorAdapter;
public class ContactListView extends ListActivity{
private ListAdapter adapter;
@Override
public void onCreate(Bundle icicle){
super.onCreate(icicle);
Cursor C = getContentResolver().query(People.CONTENT_URI, null, null, null, null);
startManagingCursor(C);
String[] columns = new String[] {People.NAME, People.NUMBER};
int[] names = new int[]{R.id.row_entry, R.id.number};
adapter = new SimpleCursorAdapter(this, R.layout.contactlist, C, columns, names):
setListAdapter(adapter);
}
}

ContactsContract.Contactsを使った時


import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.view.View;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;
public class ContactListView extends ListActivity {
private ListAdapter adapter;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
Cursor C = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null,
null, null);
startManagingCursor(C);
String[] columns = new String[] { ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER };
int[] names = new int[] { R.id.row_entry, R.id.number };
adapter = new SimpleCursorAdapter(this, R.layout.contactlist, C,
columns, names);
setListAdapter(adapter);
}

コメント

タイトルとURLをコピーしました