当使用适配器在expandablelist视图中设置按钮时,如何只使一个按钮高亮显示

时间:2018-01-24 05:41:07

标签: android android-studio

我有一个适配器,我使用下面的类

private class ViewHolder {
    TextView tvTitle;
    CheckBox cbSelection;
    CheckBox cbFavourite;
    LinearLayout llPassionInterestLayout;

    public ViewHolder(View itemView) {
        tvTitle = (TextView) itemView.findViewById(R.id.tv_list);
        cbSelection = (CheckBox) itemView.findViewById(R.id.cb_selection);
        cbFavourite = (CheckBox) itemView.findViewById(R.id.cb_favourite);
        llPassionInterestLayout = (LinearLayout) itemView.findViewById(R.id.ll_passion_interest_parent);
    }
}

在我的适配器

 ViewHolder holder;
 holder.cbFavourite.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                String key = isChecked ? passion.getKey() : null;
                ObjectFactory.getInstance().getNewUserManager(context).setInterestFavourite(key);

当我在视图中通过适配器设置时,我可以看到5个按钮(按钮图像是带有灰色的星形,当按下按钮时按钮图像颜色变为红色)。目前,当我点击每个按钮时,它会变为红色。单击所有按钮后,每个按钮都变为红色..

我的问题是我只需要选择一个按钮,即当我点击按钮1时,它会变为红色。之后,如果我点击按钮2,按钮2必须变为红色,按钮1应该返回灰色

我该怎么做

1 个答案:

答案 0 :(得分:0)

如果您希望用户选择多个选项,则应使用复选框。而 单选按钮保证了多个选项中的单个选项。 如果你想要其他按钮应该变成灰色,只有选中应该变成红色请使用RadioButton