我试图弄清楚如何从 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/