在列表视图中加载联系人查询

Posted

技术标签:

【中文标题】在列表视图中加载联系人查询【英文标题】:load contact query in listview 【发布时间】:2014-07-12 16:51:48 【问题描述】:

我正在尝试在列表视图中显示联系人数据。我认为一切都很好,但是当我执行应用程序时,出现以下错误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;
    

【问题讨论】:

如果您想在列表视图中显示联系电话? 【参考方案1】:

R.layout.activity_busca_contactos 应该包含 TextView 没有别的。

如果你想使用其他View,那么你需要创建一个CustomAdapter

【讨论】:

但我不使用任何 TextView 来做任何事情 那么布局中有什么? 布局只有ListView 您必须传递要用于在行中膨胀的布局。尝试用android.R.layout.simple_list_item_1替换R.layout.activity_busca_contactos 您确定您的ArrayList 不为空吗?

以上是关于在列表视图中加载联系人查询的主要内容,如果未能解决你的问题,请参考以下文章

联系人没有加载到我的列表视图android中

将联系人的图片加载到列表视图中,而不是默认?

添加数据时,Firebase 列表视图未实时显示

联系人在列表视图的一行中列出?

获取所有联系人并在列表视图中显示它们

Android:使用 CursorLoader 加载联系人,而不是全部加载