これは、複数の連絡先を取り出し、その連絡先をバンドルに格納するコードです。Uriの値をバンドル値に渡す方法
Intent phonebookIntent = new Intent("intent.action.INTERACTION_TOPMENU");
phonebookIntent.putExtra("additional", "phone-multi");
phonebookIntent.putExtra("maxRecipientCount", MAX_PICK_CONTACT);
phonebookIntent.putExtra("FromMMS", true);
startActivityForResult(phonebookIntent, REQUEST_CODE_PICK_CONTACT);
そして問題は、私はウリのデータを参照する他のクラスでそれを利用することができるように、私はウリのデータを望んで選択したデータ
if (requestCode == REQUEST_CODE_PICK_CONTACT) {
Uri contractData = data.getData();
Bundle contantData = data.getExtras();
String result= contantData.getString("result");
ArrayList<String> contacts = contantData.getStringArrayList("result");
ContactRetriever cr = new ContactRetriever(getApplicationContext(), contacts);
Person p = cr.getPerson();
を取得するために使用される以下のコード。バンドル値をUriデータにどのように渡すことができますか。 any1助けてください。
Iが "連絡先データ" としてURIデータを呼び出してい他のクラス
private String getNumber() {
String ret = null;
Cursor cId = cr.query(contractData, new String[]{ContactsContract.Contacts._ID}, null, null, null);
if (cId.moveToFirst()){
id = cId.getString(cId.getColumnIndex(ContactsContract.Contacts._ID));
Log.i(TAG + " IDs: ", id);
}
cId.close();
Cursor cNum = cr.query(contractData, null, null, null, null);
if (cNum.moveToNext()){
ret = cNum.getString(cNum.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i(ret, TAG + " NUMBERS: ");
}
return ret;
}
private String getName() {
String ret = null;
Cursor c = cr.query(contractData, null, null, null, null);
if (c.moveToFirst())
ret = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
c.close();
Log.i(TAG + "NAMES: ", ret);
return ret;
}
}
カーソルCID = cr.query(contractData、新しいString [] {としてContactsContracts._ID}、null、null、null);
カーソルcNum = cr.query(contractData、null、null、null、null);
カーソルc = cr.query(contractData、null、null、null、null);
エラーを。 toString() – Meghana
およびUri uriData = Uri.parse(extras.getString "uri"));エクストラは値を得られないので余計にエラーになります。 – Meghana
anyi1 help – Meghana