【问题标题】:Android Updates to ListView ActivityAndroid 对 ListView 活动的更新
【发布时间】:2012-01-12 14:11:27
【问题描述】:

我是 Android 编程新手,但对一般编程或 Java 不熟悉。我的问题主要是关于最佳实践。

我创建了一个类 MenuListActivity,它扩展了一个 ListActivity,它在列表中显示菜单项并在单击时启动另一个 Activity。每个菜单都是 MenuListActivity 类的子类,并实现 getMenuItems() 方法来创建菜单项。

在我的 onCreate() 方法中,我调用 getMenuItems() 来创建一个 MenuListAdapter 类,然后将其设置为 ListActivity 的 ListView 的适配器。

但是,有时我会收到一个非法状态异常,告诉我“适配器的内容已更改,但 ListView 没有收到通知。”。请注意它有时会发生,而不是所有时间。我没有在任何其他线程中触摸适配器,实际上适配器是这样设置的:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ArrayList<MenuAdapterItem> menuItems = getMenuItems();
    this.setListAdapter(new MenuAdapter(this, menuItems));
}

我能想到的另一种可能性是,创建一个 Adapter 成员变量并在每次更新时调用 notifyDataSetChanged()。

正确执行此操作的方法是什么? (并希望修复我的崩溃 ;-))。

问候 巴特

【问题讨论】:

  • 我将 MenuListActivity 类更改为将 MenuListAdapter 作为成员变量,并且崩溃似乎已经停止。

标签: android listview listadapter


【解决方案1】:

我之前遇到过这个问题,我使用了“setNotifyOnChange(true);”希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多