如何从3个按钮中选择只有1个按钮?我设法设置/取消设置所选按钮的背景色。但无法选择唯一一个选定的按钮。
示例btn1、btn2、btn3。当我选择btn1时,btn1背景颜色发生变化,btn2和btn3不受影响。之后,当我再次选择btn2时,btn1背景色未设置,btn2背景色更改。因此此时选择btn2而不选择btn1和btn3。
下面是我的示例代码:
public class ViewHolder extends RecyclerView.ViewHolder {
Button mButton;
public ViewHolder(View v) {
super(v);
parentActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
mButton= itemView.findViewById(R.id.mButton);
}
});
}
}
holder.mButton.setOnClickListener(new DebouncedOnClickListener(500) {
@Override
public void onDebouncedClick(View v) {
if(!holder.mButton.isSelected()){
holder.mButton.setSelected(true);
setSelectedButton(holder);
}
else{
holder.mButton.setSelected(false);
setSelectedButton(holder);
}
}
});
private void setSelectedButton(ViewHolder holder){
if(holder.mButton.isSelected()){
holder.mButton.setBackgroundColor(parentActivity.getResources().getColor(R.color.unread_notification));
}
else{
holder.mButton.setBackgroundColor(parentActivity.getResources().getColor(R.color.white));
}
}
我建议你使用CheckBox而不是像这样的按钮 -
<RadioGroup
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:background="@drawable/background"
android:orientation="horizontal">
<RadioButton
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@drawable/button_background"
android:button="@null"
android:gravity="center"
android:text="Button 1"
android:textColor="#fff"
android:checked="true"
android:textStyle="bold" />
<RadioButton
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@drawable/button_background"
android:button="@null"
android:gravity="center"
android:text="Button 2"
android:textColor="#fff"
android:textStyle="bold" />
<RadioButton
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight="1"
android:background="@drawable/button_background"
android:button="@null"
android:gravity="center"
android:text="Button 3"
android:textColor="#fff"
android:textStyle="bold" />
</RadioGroup>
对于按钮背景-
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="false">
<shape android:shape="rectangle" >
<corners android:radius="50dp"/>
<solid android:color="#c7c7c7"/>
</shape>
</item>
<item android:state_checked="true">
<shape android:shape="rectangle" >
<corners android:radius="50dp"/>
<gradient android:startColor="#79ccff"
android:endColor="#7900ca"/>
</shape>
</item>
</selector>
作为背景-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="50dp" />
<solid android:color="#c7c7c7" />
</shape>
您需要的是将选择实施到您的回收器视图中。经过一番搜索,我发现这个网站可能对你有用
https://medium.com/@maydin/多选择和单选择在回收器视图d29587a7de2
我有一个父回收器视图,其中包含一个水平回收器视图作为其项目。在其中,我将显示分类视频。当我开始滚动水平回收器视图时,应用程序崩溃。 错误是: 我的代码是category类 垂直适配器 水平适配器
我正在寻找在Android中使用列表适配器和Recyview适配器的区别。关于性能的任何不同,使用它们的利弊。
我试图使用picasso库将url加载到imageView,但无法获得来正确使用picasso库。
在此处输入图像描述 我有一份父母名单,每个人都有零个或多个孩子,我用回收视图给父母看。我想向家长展示每个回收人员视图项目的标题,下面是向所有孩子展示向孩子展示的最好方式是什么?是否适合在列表视图中显示孩子,或者为每个孩子添加动态视图,如果是的话,如何做到这一点?我已经附上了布局的图像,请检查我的意思,谢谢 在此处输入图像描述
新手在这里。当长时间按下卡片(列表项)时,我很难在单个列表项上实现动画。当我长按一张卡片时,所有卡片都会动画化。有人可以解释为什么只有当回收器View的水平滚动被我禁用时才会发生此问题。 主要活动: 回收器视图适配器:
我已经在我的回收器视图中实现了Admob原生快递广告。它在列表中保留空白,直到广告被加载,如果没有互联网可用。我怎样才能隐藏空白处直到广告加载?谢谢