如何在RecyclerViewAdapter中切换按钮的背景

时间:2017-07-12 08:30:49

标签: android android-recyclerview

我在Recyclerview中有按钮想要做的是每当用户点击第一个按钮时该按钮的背景应该改变,当用户点击下一个按钮时,第一个按钮应该显示为普通按钮。怎么做?请帮我。 这是我的示例代码:

     @Override
    public void onBindViewHolder(final AreaRecyclerViewAdapter.ViewHolder Viewholder, final int position) {

        final GetAreaAdapter getAreaAdapter1 =  getAreaAdapter.get(position);


        Viewholder.btn_name.setText(getAreaAdapter1.getBtn_name());
        setImageIntoButton( Viewholder.btn_name,getAreaAdapter1.isSelected());
        Viewholder.btn_name.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                getAreaAdapter1.setSelected(!getAreaAdapter1.isSelected());
                setImageIntoButton(Viewholder.btn_name,getAreaAdapter1.isSelected());
                Viewholder.btn_name.setBackgroundResource(R.drawable.ripple_effect);
            }
        });



    }
  private void setImageIntoButton(Button buttonView,boolean isSelected){
        if(isSelected)
            buttonView.setBackgroundResource(R.drawable.ripple_effect);

        else
            buttonView.setBackgroundResource(R.drawable.button_2);
    }

1 个答案:

答案 0 :(得分:0)

使用State-List drawables

在drawable目录中创建一个xml文件 并添加类似的东西 button_bg.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/some_drawable_for_pressed_state" 
android:state_pressed="true"/>
<item android:drawable="@drawable/default_drawable"/>
</selector>

并将其设置为按钮的背景。

android:background="@drawable/button_bg.xml"