giovedì 16 maggio 2013
Rubrica Android in ArrayList
State realizzando un'app Android che legge i contatti dalla rubrica e vi serve memorizzare tutti i nomi e i numeri di telefono?
Vi mostro come fare per riempire un ArrayList con i nomi e i numeri dei vostri amici!
Creamo la Classe MainActivity.java:
import java.util.ArrayList;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.app.Activity;
import android.database.Cursor;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private ArrayList <String> dati=new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Cursor cursor = getContentResolver().query(
ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
while (cursor.moveToNext()) {
String contactId = cursor.getString(cursor
.getColumnIndex(Contacts._ID));
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String hasPhone = cursor
.getString(cursor
.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));
if (!Boolean.parseBoolean(hasPhone)) {
Cursor phones = getContentResolver().query(
ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID
+ " = " + contactId, null, null);
while (phones.moveToNext()) {
String number = phones
.getString(phones
.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String nome=phones
.getString(phones
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
dati.add(nome);
dati.add(number);
}
phones.close();
}
}
cursor.close();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
Ora inseriamo nel manifest.xml il seguente permesso:
<uses-permission android:name="android.permission.READ_CONTACTS"/>
Bene! Ora nell'ArrayList dati avrete tutti i nomi degli amici e i numeri di telefono, in sequenza alternata. Per leggerli in coppia consiglio di utilizzare un ciclo for che ad ogni ripetizione incrementi un indice di un valore pari a 2
es. for(int i=0;i<=dati.size();i+2).
Spero di esservi stato utile!
Iscriviti a:
Commenti sul post (Atom)
Nessun commento:
Posta un commento