【问题标题】:How do I implement expandable List view setOnItemClickListener from button present in child view?如何从子视图中存在的按钮实现可扩展列表视图 setOnItemClickListener?
【发布时间】:2016-08-08 13:57:05
【问题描述】:

我试图弄清楚如何从子视图中存在的按钮实现可扩展的列表视图 setOnItemClickListener。到目前为止,这是我所拥有的:

public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
    if (convertView == null) {
        LayoutInflater infalInflater = (LayoutInflater) context
            .getSystemService(context.LAYOUT_INFLATER_SERVICE);
        convertView = infalInflater.inflate(R.layout.weekly_event_child_items, null);
    }

    Button mybutton = (Button) convertView.findViewById(R.id.button2);
    mybutton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v1) {
            ((ExpandableListView) parents).performItemClick(v1,positions, 0);
        }
    });
}

在主视图中我已经实现了:

expandableListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
        System.out.println("clicked");
    }
});

我期待 ((ExpandableListView) parents).performItemClick(v1,positions, 0 this 以某种方式调用 expandableListView.setOnItemClickListener 中的事件处理程序,这目前没有发生。我想从按钮进行调用click present in child view 调用可展开列表视图的项目点击监听器。

【问题讨论】:

  • 你能澄清你在问什么吗?您在此处发布的代码的结果是什么?您期望的结果是什么? (根据您的要求,日志也可能会有所帮助)。
  • 我期待 ((ExpandableListView) parents).performItemClick(v1,positions, 0 this 以某种方式调用expandableListView.setOnItemClickListener 没有发生。我想通过单击按钮进行调用出现在子视图中以调用可扩展列表视图 setOnItemClickListener。
  • 现在会发生什么?执行时是否有异常 ((ExpandableListView) parents).performItemClick(v1,positions, 0);还是它被成功调用并且什么都不做?顺便说一句,此时“父母”是否为空?我没看到你在哪里设置这个。我认为您此时可能不想使用该变量,您可能需要一种不同的方式来检索可扩展列表。为什么不通过另一个 FindViewById 调用来获取可扩展列表?
  • 另外,这是完整的代码吗?我没有看到您发布的方法返回任何内容 - 我不希望这甚至会编译。

标签: java android expandablelistview expandablelistadapter


【解决方案1】:

我认为下面的方法:

public void onClick(View v1) {
    ((ExpandableListView) parents).performItemClick(v1,positions, 0);
}

未正确实施。如果您正在使用 ExpandableListView 进行操作,则可以使用 FindViewById(...) 检索它。

我认为这也是设置按钮事件侦听器的错误位置,因为它与单个子视图没有具体关系。

【讨论】:

  • 我没有收到任何异常,但 setOnItemClickListener 没有被调用
  • setOnItemClickListener 本身不应被调用 - 它所做的只是 设置 onItemClickListener。它本身不是事件处理程序。
猜你喜欢
  • 2017-01-02
  • 2012-04-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-25
相关资源
最近更新 更多