【问题标题】:SimpleCursorAdapter for ListView?ListView 的 SimpleCursorAdapter?
【发布时间】:2011-03-11 20:58:08
【问题描述】:

在我的应用程序中,我需要为我的列表视图使用 SimpleCursorAdapter,该列表视图由字符串[] 或 ArrayList[]...

我尝试了以下代码:

ArrayList<String> mDisplay = new ArrayList<String>();
Cursor c = (Cursor) mDisplay.iterator();
    lv_contactlist.setAdapter(new SimpleCursorAdapter(this, android.R.layout.simple_list_item_checked, c ,new String[]{mDisplay.toString()}, new int[]{android.R.id.text1}));

但显示错误如下:

原因:java.lang.ClassCastException: java.util.ArrayList$ArrayListIterator 在 com.kpj4s.way2sms.ContactsList.onCreate(ContactsList.java:62) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)

我认为光标对象“c”没有正确设置

任何人都可以帮助我编写代码或向我展示替代方法(注意:我只需要使用 SimpleCursorAdapter)

谢谢:)

【问题讨论】:

    标签: java android eclipse listview simplecursoradapter


    【解决方案1】:

    Cursor 通常是数据库查询的结果。您没有查询数据库并且Iterator 不是Cursor,因此ClassCastException

    如果您希望查询 ContentProvider 以收集联系信息,请参阅http://developer.android.com/guide/topics/providers/content-providers.html 上的“查询内容提供者”部分

    如果你真的只想显示你的ArrayList&lt;String&gt;,试试ArrayAdapterhttp://developer.android.com/reference/android/widget/ArrayAdapter.html

    【讨论】:

    • 刚刚经历了尝试(和失败)使 ArrayAdapter 按照文档所说的方式运行的痛苦,但您可能希望在开始之前给自己倒几杯烈性酒.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    相关资源
    最近更新 更多