【问题标题】:how to display multiple list objects using simplelist adapter in android如何在android中使用simplelist适配器显示多个列表对象
【发布时间】:2014-04-07 19:03:51
【问题描述】:

这不起作用我想在第一个 SimpleAdapter 上附加第二个 SimpleAdapter。但是,它被覆盖了,只显示了第二个列表。

我想在单个列表中显示每个对象的不同列表格式,如 list_item 和 list_item_new 需要帮助

    ListAdapter newAdapter = new SimpleAdapter(
                        NotificationTask.this, notificationsList,
                        R.layout.list_item_new, new String[] { TAG_PID,
                                TAG_NAME, TAG_DESCRIPTION},
                        new int[] { R.id.pid, R.id.name, R.id.description });

                newAdapter = new SimpleAdapter(
                          NotificationTask.this, oldNotificationsList,
                          R.layout.list_item, new String[] { TAG_NID,
                          TAG_NAME, TAG_DESCRIPTION},
                          new int[] { R.id.pid, R.id.name, R.id.description });

                //list.setAdapter(adapter);
                setListAdapter(newAdapter);

                        ((BaseAdapter) newAdapter).notifyDataSetChanged();

【问题讨论】:

  • 除了查看以下针对您当前问题的一些可能的解决方案之外,您还真的应该先看看对 Java 和一般编程有更深入的了解,因为您会感到惊讶当你设置一个变量两次时,一个值被覆盖表明你对一些基本编程概念的理解存在一些漏洞。

标签: java android listadapter simpleadapter jsonobject


【解决方案1】:

这是不可能的,尝试创建一个能够处理方法 getView 上的两个元素的自定义适配器(如果一种视图与另一种不同)。

适配器是列表视图及其内容之间的中间人,因此每个列表视图只能管理一个适配器,这就是它被位于第二个适配器上的数据覆盖的原因。

【讨论】:

    【解决方案2】:

    我使用MatrixCursorSimpleCursorAdapter 组合多个数据源进行显示。

    您可以覆盖SimpleCursorAdapter.ViewBindersetViewValue(View view, Cursor cursor, int columnIndex) 方法并指定逻辑。

    SimpleCursorAdapter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 2019-03-18
      • 2016-10-11
      • 1970-01-01
      相关资源
      最近更新 更多