2

重複の可能性:
Androidで新しい連絡先を追加する方法

連絡先に名前を追加するにはどうすればよいですか?2つのスピナーがあります。1つは名用、もう1つは姓用です。割り当てられた変数はlinkname1とlinkname2です。ユーザーが[OK]ボタン(これらはすべてダイアログに表示されます)を押すと、名前(linkname1 + "" + linkname2)が連絡先に追加されます。連絡先を読むことはできますが、どうすれば書くことができますか?

ありがとう

更新:私もこれを試しました:

newname = linkname1 + " " + linkname2;
ContentValues values = new ContentValues();
vales.put(ContactsContract.Contacts.DISPLAY_NAME, newname);

この:

StringBuffer strBuf = new StringBuffer();
strBuf.append(linkname1);
strBuf.append(" ");
strBuf.append(linkname2);
ContentValues values = new ContentValues();
values.put(ContactsContract.Contacts.DISPLAY_NAME, strBuf.toString());

ただし、新しい名前は連絡先リストに表示されません。

4

2 に答える 2

1

そのコンテンツプロバイダーは引き続き機能しますが、2.2ではContactsContractsに置き換えられました。次のコードは、新しい連絡先契約プロバイダーで機能します。

ArrayList<ContentProviderOperation> ops =
          new ArrayList<ContentProviderOperation>();
 ...
 int rawContactInsertIndex = ops.size();
 ops.add(ContentProviderOperation.newInsert(RawContacts.CONTENT_URI)
          .withValue(RawContacts.ACCOUNT_TYPE, accountType)
          .withValue(RawContacts.ACCOUNT_NAME, accountName)
          .build());

 ops.add(ContentProviderOperation.newInsert(Data.CONTENT_URI)
          .withValueBackReference(Data.RAW_CONTACT_ID, rawContactInsertIndex)
          .withValue(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE)
          .withValue(StructuredName.GIVEN_NAME, linkname1)
          .withValue(StructuredName.FAMILY_NAME, linkname2)
          .build());

 getContentResolver().applyBatch(ContactsContract.AUTHORITY, ops);

AccountManagerサービスから照会する必要のあるアカウント名とタイプ。アカウント(ローカルやGoogleなど)を選択するか、ユーザーにプロンプ​​トを表示します。

于 2011-03-04T21:04:21.927 に答える
0

Androidのハウツー(新しい連絡先を作成する):

http://www.lacherstorfer.at/haris_blog/2008/03/android-howto-create-a-new-con.html

コメントのコード編集を必ず確認してください。バージョンによっては修正に役立つ場合があります。

于 2011-03-04T17:59:54.827 に答える