組み込みの連絡先リストから取得した連絡先の名前のListViewを使用するアプリで作業しています。ContentProviderを使用して、組み込みの連絡先リストから名前を取得します。さらに、ListViewの名前をデータベーステーブルに保存します。
組み込みの連絡先リストとデータベーステーブルを同期する必要があります。そのため、組み込みのContactsContractのDISPLAY_NAMEとテーブルの名前が一致しない場合に、ユーザーにアラートメッセージをトリガーする必要があります。そして、ユーザーは手動で名前を変更する必要があり、私はテーブルからの名前を変更する必要があります。
それ、どうやったら出来るの?私はこれについて助けが必要です。
私は提供された助けに感謝します。例やチュートリアルもありがたいです。
ありがとう。!
アップデート
ContactsList.java-これは、Android携帯の連絡先から取得した連絡先のListViewです。
BuddyDBAdapter buddyDB = new BuddyDBAdapter(this);
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.contacts_list);
ListView list = getListView();
setListAdapter(new ArrayAdapter<String> (this, R.layout.contacts_list, R.id.contactName, buddiesList));
Uri allContacts = Uri.parse("content://contacts/people");
Cursor c = managedQuery(allContacts, null, null, null, null);
String[] columns = new String[] {ContactsContract.Contacts.DISPLAY_NAME};
int[] views = new int[] {R.id.contactName};
startManagingCursor(c);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contacts_list, c, columns, views);
this.setListAdapter(adapter);
}
@Override
public void onListItemClick(ListView l, View v, int position, long id)
{
buddyDB.open();
long name_id;
super.onListItemClick(l, v, position, id);
/*String action = getIntent().getAction();
if(Intent.ACTION_VIEW.equals(action))
{
//startActivity(intent);
}*/
//startActivityForResult(new Intent(Intent.ACTION_PICK),PICK_CONTACT);
Cursor c = ((SimpleCursorAdapter)l.getAdapter()).getCursor();
TextView contactName = (TextView) v.findViewById(R.id.contactName);
String NameValue = contactName.getText().toString();
name_id = buddyDB.insertNames(NameValue);
Toast.makeText(getBaseContext(),
"Selected: " + buddiesList[position], Toast.LENGTH_SHORT).show();
buddyDB.close();