temerariomalaga
temerariomalaga

Reputation: 87

load contact query in listview

I'm trying to show contact data in a listview. I think all it's ok but when I execute the app I have the follow error java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView. The code is this:

public class BuscaContactos extends Activity {
    ListView listContactos;
    String opcion;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_busca_contactos);
        listContactos=(ListView)findViewById(R.id.listContactos);
        ArrayList<String> listagente = consultaAgenda();
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(BuscaContactos.this, R.layout.activity_busca_contactos,listagente);
        listContactos.setAdapter(adapter);
        listContactos.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            }
        });
    }

    private ArrayList<String> consultaAgenda() {
        ArrayList<String> datos = new ArrayList<String>();
        Cursor c = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
        while (c.moveToNext()) {
            String ContactID = c.getString(c.getColumnIndex(ContactsContract.Contacts._ID));
            String nombre = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
            datos.add(ContactID);
            datos.add(nombre);
        }
        c.close();
        return datos;
    }
}

Upvotes: 0

Views: 44

Answers (1)

Apoorv
Apoorv

Reputation: 13520

R.layout.activity_busca_contactos should contain a TextView nothing else.

If you want to use other View then you need to create a CustomAdapter

Upvotes: 2

Related Questions