salve a tutti, ho estrapolato i contatti del mio telefono e li ho inseriti in una ListView, l'utente dovrebbe poter selezionare tutti i contatti che vuole e questi poi dovrebbero essere mostrati. So selezionarli, ma non so mostrali, qualcuno potrebbe darmi una mano? mi basta anche soltanto riuscire a reperire gli attributi del contatto telefonico (nome e numero)
Java:
private void _addContact() {
AlertDialog.Builder Builder = new AlertDialog.Builder(NewGame.this);
Builder.setTitle("Select a friend");
final View v = LayoutInflater.from(NewGame.this).inflate(R.layout.item_dialog,null, false);
Builder.setView(v);
Cursor cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null,null);
startManagingCursor(cursor);
final String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Photo.PHOTO};
int[] to = {android.R.id.text1, android.R.id.text2};
final SimpleCursorAdapter simpleCursorAdapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from, to);
final ListView l1 = v.findViewById(R.id.ContactsList);
final ArrayList<String> selectedList = new ArrayList<>();
l1.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
view.setSelected(true);
if (selectedList.contains(simpleCursorAdapter.getItem(i).toString()))
selectedList.remove(simpleCursorAdapter.getItem(i).toString());
else
selectedList.add(simpleCursorAdapter.getItem(i).toString());
}
});
l1.setAdapter(simpleCursorAdapter);
l1.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
final EditText etItem = v.findViewById(R.id.etItem);
Builder.setPositiveButton("Add", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
for(String x : selectedList)
list.add(x);
arrayAdapter.notifyDataSetChanged();
}
});
Builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
dialogInterface.dismiss();
}
});
Builder.show();
}