将按钮值切换为整数

时间:2019-07-13 04:45:39

标签: java android

我想添加一个包含整数值的切换按钮。如果选中切换按钮,则该值为1,反之亦然。如何从切换按钮获取此值?

欢迎使用示例代码。谢谢您的宝贵时间。

2 个答案:

答案 0 :(得分:1)

final int answer = 0;
JToggleButton jtb = new JToggleButton("Press Me");
jtb.addItemListener(new ItemListener() {
    public void itemStateChanged(ItemEvent ev) {
       if(ev.getStateChange()==ItemEvent.SELECTED){
           answer = 1;
       } else if(ev.getStateChange()==ItemEvent.DESELECTED){
           answer = 0;
       }
    }
 });

答案 1 :(得分:0)

可以通过使自定义窗口小部件继承Button类来创建切换按钮。

class SelectableButton(context: Context, attrs: AttributeSet) : Button(context, attrs) {
    var isViewSelected: Boolean = false

    init {
        setTextColor(ContextCompat.getColor(context, android.R.color.black))
        background = ContextCompat.getDrawable(context, R.drawable.yellow_selector)
    }

    fun getSelectedInt() = if(isViewSelected) 1 else 0

    override fun performClick(): Boolean {
        isViewSelected = !isViewSelected
        background = if (isViewSelected) {
            setTextColor(ContextCompat.getColor(context, android.R.color.black))
            ContextCompat.getDrawable(context, R.drawable.yellow_selector)
        } else {
            setTextColor(ContextCompat.getColor(context, android.R.color.black))
            ContextCompat.getDrawable(context, R.drawable.grey_rounded_corner)
        }
        return super.performClick()
    }

在上面的代码中,文本和背景的颜色和背景也被切换为选定状态。如果不需要,可以删除。

用法示例

// In layout file
<com.your.package.SelectableButton
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="button text"
        android:textAllCaps="true" />

// In code
// toggle in programming is not necessary

// get selected value
val intValue = button.getSelectedInt()