android studio开关控制

发布于:2025-06-14 ⋅ 阅读:(17) ⋅ 点赞:(0)

MainActivity.java代码:

package com.example.myapplication;

import android.os.Bundle;
import android.util.Log;
import android.widget.Switch;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

    private Switch mySwitch;
    private TextView statusText;

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

        mySwitch = findViewById(R.id.my_switch);
        statusText = findViewById(R.id.status_text);
        // 设置监听器
        mySwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
            Log.d("SwitchLog", "buttonView: " + isChecked);
            switch (isChecked ? 1 : 0) {
                case 1:
                    statusText.setText("当前状态:开启");
                    break;
                case 0:
                    statusText.setText("当前状态:关闭");
                    break;
            }

        });
    }
}
activity_main.xml代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="24dp">

    <Switch
        android:id="@+id/my_switch"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="开关控制" />

    <TextView
        android:id="@+id/status_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="当前状态:关闭"
        android:layout_marginTop="16dp"
        android:textSize="18sp" />
</LinearLayout>

运行结果:

综上可得:

控件:

Switch

工具:android studio

软件:Windows11

Switch监听器:

setOnCheckedChangeListener

Log.d日志打印:

Log.d("SwitchLog", "buttonView: " + isChecked);

mySwitch = findViewById(R.id.my_switch);
mySwitch.setOnCheckedChangeListener((buttonView, isChecked) -> {
    Log.d("SwitchLog", "buttonView: " + isChecked);
    switch (isChecked ? 1 : 0) {
        case 1:
            statusText.setText("当前状态:开启");
            break;
        case 0:
            statusText.setText("当前状态:关闭");
            break;
    }

});

xml:

<Switch
    android:id="@+id/my_switch"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="开关控制" />
java的tatusText.setText("当前状态:开启");可以更新xml的TextView控件的android:text内容

其中

tatusText即为statusText = findViewById(R.id.status_text);

网站公告

今日签到

点亮在社区的每一天
去签到