从交换机android访问父视图中的按钮

时间:2014-11-21 10:56:52

标签: android

我从复合按钮的父级访问视图时遇到问题。

((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

        if (rowItem.getPush().equals("N")) {
            rowItem.setFollow(true);
            rowItem.setPush("Y");
            setFollowTickGreen(rowItem, convertView);
        }
        else if (rowItem.getPush().equals("Y")) {
            rowItem.setPush("N");
        }

    }
});

此代码显示我的开关按钮,但是当我按下此按钮时,我需要访问convertView以更改其他内容。

这是在适配器内完成的,因此切换代码在getView函数中,但setFollowTickGreen在该函数之外。

我无法将convertView设置为最终版本,因为它会在整个getView函数中发生变化。 我知道compoundButton是交换机,但是交换机与我想要访问Button的交换机处于同一级别。

有一般的方法吗? 这对于其他情况以及我假设的复合按钮都是类似的。

感谢。

1 个答案:

答案 0 :(得分:0)

这有帮助..

final View tmpConvertView=convertView;
((Switch) convertView.findViewById(R.id.push_switch)).setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(CompoundButton compoundButton, boolean b) {

        if (rowItem.getPush().equals("N")) {
            rowItem.setFollow(true);
            rowItem.setPush("Y");
            setFollowTickGreen(rowItem, tmpConvertView);
        }
        else if (rowItem.getPush().equals("Y")) {
            rowItem.setPush("N");
        }

    }
});