我在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);
}
答案 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"
。