我试图在列表视图中显示联系人数据。我认为一切都还可以,但是当我执行应用程序时,我遇到了错误java.lang.IllegalStateException: ArrayAdapter requires the resource ID to be a TextView
。
代码是这样的:
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;
}
}
答案 0 :(得分:2)
R.layout.activity_busca_contactos
应该只包含TextView
。
如果您想使用其他View
,则需要创建CustomAdapter