我是android的新手,正在使用警报应用程序。为此,我有7个圆形按钮,每个按钮表示从星期日到星期六的一周中的某天。
我想要做的是当用户单击它时,我想更改所单击按钮的边框颜色,并且按钮文本显示在textview上。
然后,如果用户随机选择按钮(天),但textview文本(选定的天)应采用有序方式。
ex:用户首先选择“星期三”,然后是“星期日”,文本视图首先显示“星期三”,然后是“星期日”。星期日将自动第1天,然后是下一个星期三。(如果用户随机选择日期,则每天都有特定的位置,textview将显示所有的日子)
demo.xml
<Button
android:id="@+id/mbtn_Sun"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/gray_button"
android:gravity="center_vertical|center_horizontal"
android:text="Sun"
android:textAllCaps="false"
android:textColor="#e20a1f" />
有人可以帮我解决这个问题吗?
答案 0 :(得分:2)
我建议改用Checkbox
。
下面是显示简单实现的示例:
<CheckBox
android:layout_width="48dp"
android:layout_height="48dp"
android:gravity="center"
android:button="@null"
android:background="@drawable/checkbox_custom_background" />
checkbox_custom_background.xml
在哪里:
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/gray_button" android:state_checked="false"/>
<item android:drawable="@drawable/green_button" android:state_checked="true"/>
<item android:drawable="@drawable/gray_button"/>
</selector>
答案 1 :(得分:0)
首先初始化您的按钮。
mButton=(Button)findViewById(R.id.mbtn_Sun);
然后这样做
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mButton.setBackgroundResource(R.drawable.green_button);
}
});
答案 2 :(得分:0)
您可以执行以下操作:
<Button
android:id="@+id/mbtn_Sun"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/button_background"
android:gravity="center_vertical|center_horizontal"
android:text="Sun"
android:textAllCaps="false"
android:textColor="#e20a1f" />
然后使用选择器
button_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/green_button" android:state_pressed="true"/>
<item android:drawable="@drawable/green_button" android:state_focused="true"/>
<item android:drawable="@drawable/gray_button"/>
</selector>