I have an array with some phone numbers, and I want to select and specify the contacts of the device, which are also in my array.
Now I can only show the first phone number, which is also in the array.
Here is my code:
public class Contacts extends ListActivity { SharedPreferences settings ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.contacts); setTitle("Choose a phone"); // Query: contacts with phone shorted by name settings = this.getSharedPreferences(SETTINGS, Context.MODE_PRIVATE); String message = settings.getString("contacts", "0,0"); String [] contacts = message.split(","); String query = " IN ("; for (int i = 1; i < contacts.length; i++) { query += contacts[i]; if (i < contacts.length - 1) query += ","; } query += ")"; Cursor mCursor = getContentResolver().query( Data.CONTENT_URI, new String[] { Data._ID, Data.DISPLAY_NAME, Phone.NUMBER, Phone.TYPE }, Data.MIMETYPE + "='" + Phone.CONTENT_ITEM_TYPE + "' AND " + Phone.NUMBER + " IS NOT NULL AND " + Phone.NUMBER + query, null, Data.DISPLAY_NAME + " ASC"); startManagingCursor(mCursor); // Setup the list ListAdapter adapter = new SimpleCursorAdapter(this, // context android.R.layout.simple_list_item_2, // Layout for the rows mCursor, // cursor new String[] { Data.DISPLAY_NAME, Phone.NUMBER }, // cursor // fields new int[] { android.R.id.text1, android.R.id.text2 } // view // fields ); setListAdapter(adapter); }
source share