table 行中的切换按钮未注册点击事件
Switch button in table row not registering click event
我在尝试为动态生成的 table 行设置开关的 onClick 侦听器时遇到了一些问题。这是代码:
TableRow row = new TableRow(this.getActivity());
Switch toggleOffOn = new Switch(new ContextThemeWrapper(this.getActivity(), R.style.Switch), null, 0);
boolean toggleValue = Boolean.valueOf(templateDirs.get(i).get(4));
toggleOffOn.setChecked(toggleValue);
toggleOffOn.setLayoutParams(new android.widget.TableRow.LayoutParams(100, android.widget.TableRow.LayoutParams.WRAP_CONTENT));
toggleOffOn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) System.out.println("TURE");
else System.out.println("FALSE");
}
});
row.addView(toggleOffOn);
tableEditReminders.addView(row);
当我尝试点击开关时,没有任何反应。有任何想法吗?
我参考this thread找到解决方案,就是设置这三个属性,现在可以了:
toggleOffOn.setFocusable(false);
toggleOffOn.setFocusableInTouchMode(false);
toggleOffOn.setClickable(true);
我在尝试为动态生成的 table 行设置开关的 onClick 侦听器时遇到了一些问题。这是代码:
TableRow row = new TableRow(this.getActivity());
Switch toggleOffOn = new Switch(new ContextThemeWrapper(this.getActivity(), R.style.Switch), null, 0);
boolean toggleValue = Boolean.valueOf(templateDirs.get(i).get(4));
toggleOffOn.setChecked(toggleValue);
toggleOffOn.setLayoutParams(new android.widget.TableRow.LayoutParams(100, android.widget.TableRow.LayoutParams.WRAP_CONTENT));
toggleOffOn.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(isChecked) System.out.println("TURE");
else System.out.println("FALSE");
}
});
row.addView(toggleOffOn);
tableEditReminders.addView(row);
当我尝试点击开关时,没有任何反应。有任何想法吗?
我参考this thread找到解决方案,就是设置这三个属性,现在可以了:
toggleOffOn.setFocusable(false);
toggleOffOn.setFocusableInTouchMode(false);
toggleOffOn.setClickable(true);