Quiero un listado de contactos en 2 columnas, hecho de la manera más simple posible.
En principio solo mostraremos los nombres de los contactos, luego imagenes, abrir dialer, etc.
Main.java
package b.android;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.widget.GridView;
import android.widget.SimpleCursorAdapter;
public class Main extends Activity {
static final ArrayList<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
String[] projection = new String[] { ContactsContract.Data.DISPLAY_NAME,
ContactsContract.Data._ID };
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
populateContactList();
}
private void populateContactList() {
// Build adapter with contact entries
Cursor cursor = getContacts();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
R.layout.contact, cursor, projection,
new int[] { R.id.contactName });
GridView gridview = (GridView) findViewById(R.id.gridview);
gridview.setAdapter(adapter);
}
private Cursor getContacts() {
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String sortOrder = ContactsContract.Data.DISPLAY_NAME
+ " COLLATE LOCALIZED ASC";
return managedQuery(uri, projection, null, null, sortOrder);
}
}
Contacto Individual
contact.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView android:id="@+id/contactName" android:textSize="12sp"
android:textStyle="bold" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</LinearLayout>
Listado
main.xml
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/gridview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:numColumns="auto_fit"
android:verticalSpacing="10dp"
android:horizontalSpacing="10dp"
android:columnWidth="130dp"
android:stretchMode="columnWidth"
android:gravity="center"
/>
Seteamos el Main, y los permisos de lectura a contactos
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="b.android"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
</manifest>
1 comentario:
como hago para saber el numero de telefono, y que la lista salga con checkbox para elegir un conjunto de usuarios
Publicar un comentario