java - 如何从 subview 中存在的按钮实现可扩展 ListView setOnItemClickListener?

标签 java android expandablelistview expandablelistadapter

我试图弄清楚如何从 subview 中存在的按钮实现可扩展 ListView 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 ) 以某种方式调用 ExpandableListView.setOnItemClickListener 中的事件处理程序,但目前没有发生。我想从按钮进行调用单击 subview 中的当前位置以调用可扩展 ListView 的项目单击监听器。

最佳答案

我认为下面的方法:

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

未正确实现。如果您正在使用 ExpandableListView 执行操作,则只需使用 FindViewById(...) 检索它即可。

我认为这也是设置按钮事件监听器的不正确位置,因为它与各个 subview 没有具体相关。

关于java - 如何从 subview 中存在的按钮实现可扩展 ListView setOnItemClickListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38831135/

相关文章:

java - 数组的排列

java - Applet 依赖 JAR 在 MANIFEST.MF 中具有不兼容的类路径

java - 生命游戏问题

android - 在 Android 中开发智能卡读卡器

java - 如何使 expandablelistview 的 child 可点击并做其他事情?

java - Spring MVC StreamingResponseBody 返回分块文件

java - 如何使用项目符号显示为输出?

android - 如何从应用程序中知道同一应用程序的更新可用

android - 在 imageview 上设置 onclicklistener

android - ExpandableListView 在尝试在 Android 中显示 subview 时有错误的 groupPosition