高级版本的CheckBox
MainActivity
package com.example.middle;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Switch;
import android.widget.TextView;
public class SwitchDefaultActivity extends AppCompatActivity implements OnCheckedChangeListener {
private Switch sw_status; // 声明一个开关按钮对象
private TextView tv_result; // 声明一个文本视图对象
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_switch_default);
// 从布局文件中获取名叫sw_status的开关按钮
sw_status = findViewById(R.id.sw_status);
// 从布局文件中获取名叫tv_result的文本视图
tv_result = findViewById(R.id.tv_result);
// 给开关按钮设置选择监听器,一旦用户点击它,就触发监听器的onCheckedChanged方法
sw_status.setOnCheckedChangeListener(this);
refreshResult();
}
// 刷新Switch按钮的开关状态说明
private void refreshResult() {
String result = String.format("Switch按钮的状态是%s",
(sw_status.isChecked()) ? "开" : "关");
tv_result.setText(result);
}
// 选择事件的处理方法
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
refreshResult();
}
}
layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="10dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:paddingTop="10dp" >
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:gravity="left|center_vertical"
android:text="Switch开关:"
android:textColor="#000000"
android:textSize="17sp" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" >
<Switch
android:id="@+id/sw_status"
android:layout_width="100dp"
android:layout_height="50dp" />
</LinearLayout>
</LinearLayout>
<TextView
android:id="@+id/tv_result"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="10dp"
android:gravity="left"
android:textColor="#000000"
android:textSize="17sp" />
</LinearLayout>
result
仿ios的开关用的是CheckBox,借助状态列表图形StateListDrawable,自定义状态列表
button的属性要设置为@null
MainActivity一样