为什么我的setOnClickListener
只能工作一次,然后第二次工作。它不会起作用。
for(int i = 0; i < contentAndHeaderLayout.length; i++){
String contentLayoutString = "branch"+contentAndHeaderLayout[i];
String headerLayoutString = "header"+contentAndHeaderLayout[i];
int branchID = getResources().getIdentifier(contentLayoutString, "id", "com.my.app");
int headerID = getResources().getIdentifier(headerLayoutString, "id", "com.my.app");
final LinearLayout contentLayout = (LinearLayout) root.findViewById(branchID);
LinearLayout headerLayout = (LinearLayout) root.findViewById(headerID);
headerLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (contentLayout.getVisibility() == View.GONE) {
expand(contentLayout);
} else {
collapse(contentLayout);
}
}
});
}
我不想创建多个onClickListener
,这就是我在循环中创建onClickListener
的原因。希望有替代方案。
答案 0 :(得分:0)
为什么不在班级中实施onClickListener
,然后设置headerLayout.setOnClickListener(this);
答案 1 :(得分:0)
不使用验证并传递contentLayout
,而是使用该听众的view
个参数
headerLayout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (view.getVisibility() == View.GONE) {
expand(view);
} else {
collapse(view);
}
}
});