【问题标题】:SimpleCursorTreeAdapter - How to customize Child layoutSimpleCursorTreeAdapter - 如何自定义子布局
【发布时间】:2010-08-10 19:25:40
【问题描述】:

我一直在玩以下 android 应用示例。

http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/ExpandableList2.html

我可以在点击孩子时触发一个动作,但我似乎无法弄清楚 如何: 1.自定义每个孩子的标签。 2. 改变每个孩子的样子。 (例如,我希望每个孩子显示电话号码,然后在右侧显示两个图形按钮。每个按钮都有一个与之相关的自定义操作。)

任何代码或链接将不胜感激。

【问题讨论】:

标签: android layout


【解决方案1】:

一种可能的解决方案是使用setViewBinder 设置SimpleCursorTreeAdapter.ViewBinder,就像使用 SimpleCursorAdapter 一样。

我完全不确定这是否可行,因为我没有尝试过,但它似乎很相似。我正在尝试解决同样的问题,所以如果它不起作用,我会尝试在这里发布。

【讨论】:

  • 对,所以我到目前为止所学到的:SimpleCursorTreeAdapter.ViewBinder 是在 API 级别 5 中引入的。我的目标是 4 级设备。 ://
  • 我是 Android 新手,我真正苦苦挣扎的是弄清楚如何“接管”子项的创建,以便我可以以编程方式分配布局和添加元素。我可以只使用 XML 来改变每个孩子的外观,但是在处理事件和分配动态属性时,我几乎被踩到了。
【解决方案2】:

您可以在 SimpleCursorTreeAdapter 中覆盖“bindChildView”。我就是这样做的:

      class MyAdapter extends SimpleCursorTreeAdapter {

        @Override
    protected void bindChildView(View view, Context context, Cursor cursor, boolean isLastChild) {
        // TODO Auto-generated method stub
        super.bindChildView(view, context, cursor, isLastChild);

        String title = cursor.getString(cursor.getColumnIndex(Alert.COL_DAY));              
        ((TextView)view.findViewById(R.id.child_day)).setText(title);           
    }

        public MyAdapter(Context context, Cursor cursor,
                int groupLayout, String[] groupFrom, int[] groupTo,
                int childLayout, String[] childFrom, int[] childTo) {

          super(context, cursor, groupLayout, groupFrom, groupTo, childLayout, childFrom, childTo);
        }

        protected Cursor getChildrenCursor(Cursor groupCursor) {
          int idColumn = groupCursor.getColumnIndex(Pill.COL_ID);
          return Alert.list(db, groupCursor.getInt(idColumn), null, Alert.COL_DAY);
        }

  }

不过,您必须在创建适配器时向适配器提供 childFrom 和 childTo 参数,因此它将在 bindChildView 中使用它们。

【讨论】:

    【解决方案3】:

    您可能想看看CursorTreeAdapter 和bindChildView 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-22
      • 2015-12-03
      相关资源
      最近更新 更多