📜  在 Kotlin 中切换

📅  最后修改于: 2022-05-13 01:54:44.633000             🧑  作者: Mango

在 Kotlin 中切换

Android Switch 也是一个两态用户界面元素,用于在 ON 和 OFF 之间切换为按钮。通过触摸按钮,我们可以前后拖动它以使其打开或关闭。
当活动只有两种状态需要选择 ON 或 OFF 时,Switch 元素很有用。我们可以使用 Switch 对象将 Switch 添加到我们的应用程序布局中。默认情况下,android Switch 的状态为 OFF 状态。我们还可以通过在 XML 布局文件中设置 android:checked = “true” 将 Switch 的状态更改为 ON。
在 android 中,我们可以通过两种方式创建 Switch 控件,一种是在 XML 布局文件中使用 Switch,另一种是在 Kotlin 文件中动态创建它。
首先,我们按照以下步骤创建一个新项目:

  1. 单击文件,然后单击新建=>新建项目
  2. 之后包括 Kotlin 支持,然后单击下一步。
  3. 根据方便选择最小的 SDK,然后单击下一步按钮。
  4. 然后选择Empty activity => next => finish

Switch小部件的不同属性

XML AttributesDescription
android:idUsed to uniquely identify the control.
android:gravityUsed to specify how to align the text like left, right, center, top, etc.
android:checkedUsed to specify the current state of switch control.
android:thumbUsed to set drawable to be used as thumb that can be moved back and forth.
android:thumbTintUsed to set tint to apply to the thumb.
android:textUsed to set the text of the Switch.
android:textOnUsed to set the text when toggle button is in ON (Checked) state.
android:textOffUsed to set the text when toggle button is in Off (unchecked) state.
android:textStyleUsed to set style of the text. For example, bold, italic, bolditalic etc.
android:textColorUsed to set color of the text.
android:textSizeUsed to set size of the text.
android:backgroundUsed to set background color of the toggle button.
android:drawableBottomUsed to set drawable to the bottom of the text.
android:drawableLeftUsed to set drawable to left of the text.
android:drawableRightUsed to set drawable to the right of text.
android:paddingUsed to set the padding from left, right, top and bottom.

在 activity_main.xml 文件中添加 Switch 代码

在这个文件中,我们将使用 LinearLayout 和其中的两个开关。设置每个开关的属性,如开关 ID、文本等。

XML


 
    
    


XML

    SwitchInKotlin


Kotlin
package com.geeksforgeeks.myfirstkotlinapp
import android.os.Bundle
import android.widget.Switch
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        val sw1 = findViewById(R.id.switch1)
        sw1?.setOnCheckedChangeListener({ _ , isChecked ->
            val message = if (isChecked) "Switch1:ON" else "Switch1:OFF"
            Toast.makeText(this@MainActivity, message,
                Toast.LENGTH_SHORT).show()
        })
 
        val sw2 = findViewById(R.id.switch2)
        sw2?.setOnCheckedChangeListener({ _ , isChecked ->
            val message = if (isChecked) "Switch2:ON" else "Switch2:OFF"
            Toast.makeText(this@MainActivity, message,
                Toast.LENGTH_SHORT).show()
        })
    }
}


XML


 

    
        
            
 
            
        
    

 


字符串.xml中添加应用程序名称

XML


    SwitchInKotlin

访问 MainActivity.kt 文件中的 Switch 小部件

在这里,我们将使用它们各自的 id 访问开关,并设置 click Listener 和 Toast 消息,如果开关处于选中(ON)状态。
首先,声明一个变量以使用它的 id 获取开关。

val sw1 = findViewById(R.id.switch1)

然后,在开关上设置OnClick监听器,并使用 if 条件检查按钮的状态。

sw1?.setOnCheckedChangeListener({ _ , isChecked ->
            val message = if (isChecked) "Switch1:ON" else "Switch1:OFF"
            Toast.makeText(this@MainActivity, message,
                Toast.LENGTH_SHORT).show()
        })

对 kotlin 文件中的另一个开关重复该过程。

科特林

package com.geeksforgeeks.myfirstkotlinapp
import android.os.Bundle
import android.widget.Switch
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity() {
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        val sw1 = findViewById(R.id.switch1)
        sw1?.setOnCheckedChangeListener({ _ , isChecked ->
            val message = if (isChecked) "Switch1:ON" else "Switch1:OFF"
            Toast.makeText(this@MainActivity, message,
                Toast.LENGTH_SHORT).show()
        })
 
        val sw2 = findViewById(R.id.switch2)
        sw2?.setOnCheckedChangeListener({ _ , isChecked ->
            val message = if (isChecked) "Switch2:ON" else "Switch2:OFF"
            Toast.makeText(this@MainActivity, message,
                Toast.LENGTH_SHORT).show()
        })
    }
}

AndroidManifest.xml 文件

XML



 

    
        
            
 
            
        
    

 

作为模拟器运行以进行输出:

在这里,当我们运行上述代码时,模拟器中显示了两个开关。我们可以独立地改变开关的状态。