如何定义"开/关"在android中的复选框

时间:2015-04-19 20:18:56

标签: android xml layout checkbox

我想设计一个具有类似于下图中的复选框的布局

enter image description here

我如何实现这一目标。

我尝试了以下但是这不是我想要的结果:

          <CheckBox
            android:id="@+id/chkBox"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="On"
            android:textColor="#000"
            android:textSize="17sp" />

2 个答案:

答案 0 :(得分:2)

您需要Switch

<Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp"
    android:text="Play with the Switch" />

来自Android documentation

  

Switch是一个双状态切换开关小部件,可以在两个选项之间进行选择

开关在功能上类似于复选框,但看起来不同。可以找到完整的布局示例here


正如Der Golem所指出的那样,您也可以使用较旧的Toggle Button。以下是两者的比较:

切换

A Switch in Android

切换按钮

enter image description here

答案 1 :(得分:0)

*首先它不是一个复选框,它是android中的一个开关 **由于我无法发布链接,因此可以使用mysamplecode.com获取代码 例如:     

<Switch
    android:id="@+id/mySwitch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginTop="20dp"
    android:text="Play with the Switch" />

<TextView
    android:id="@+id/switchStatus"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_below="@+id/mySwitch"
    android:layout_marginTop="22dp"
    android:text="Medium Text"
    android:textAppearance="?android:attr/textAppearanceMedium" />

</RelativeLayout>

主:

 public class MainActivity extends Activity {

private TextView switchStatus;
private Switch mySwitch;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    switchStatus = (TextView) findViewById(R.id.switchStatus);
    mySwitch = (Switch) findViewById(R.id.mySwitch);

    //set the switch to ON 
    mySwitch.setChecked(true);
    //attach a listener to check for changes in state
    mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(CompoundButton buttonView,
                boolean isChecked) {

            if(isChecked){
                switchStatus.setText("Switch is currently ON");
            }else{
                switchStatus.setText("Switch is currently OFF");
            }

        }
    });

    //check the current state before we display the screen
    if(mySwitch.isChecked()){
        switchStatus.setText("Switch is currently ON");
    }
    else {
        switchStatus.setText("Switch is currently OFF");
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.activity_main, menu);
    return true;
}

}