在 Kotlin 中切换
Android Switch 也是一个两态用户界面元素,用于在 ON 和 OFF 之间切换为按钮。通过触摸按钮,我们可以前后拖动它以使其打开或关闭。
当活动只有两种状态需要选择 ON 或 OFF 时,Switch 元素很有用。我们可以使用 Switch 对象将 Switch 添加到我们的应用程序布局中。默认情况下,android Switch 的状态为 OFF 状态。我们还可以通过在 XML 布局文件中设置 android:checked = “true” 将 Switch 的状态更改为 ON。
在 android 中,我们可以通过两种方式创建 Switch 控件,一种是在 XML 布局文件中使用 Switch,另一种是在 Kotlin 文件中动态创建它。
首先,我们按照以下步骤创建一个新项目:
- 单击文件,然后单击新建=>新建项目。
- 之后包括 Kotlin 支持,然后单击下一步。
- 根据方便选择最小的 SDK,然后单击下一步按钮。
- 然后选择Empty activity => next => finish 。
Switch小部件的不同属性
XML Attributes Description android:id Used to uniquely identify the control. android:gravity Used to specify how to align the text like left, right, center, top, etc. android:checked Used to specify the current state of switch control. android:thumb Used to set drawable to be used as thumb that can be moved back and forth. android:thumbTint Used to set tint to apply to the thumb. android:text Used to set the text of the Switch. android:textOn Used to set the text when toggle button is in ON (Checked) state. android:textOff Used to set the text when toggle button is in Off (unchecked) state. android:textStyle Used to set style of the text. For example, bold, italic, bolditalic etc. android:textColor Used to set color of the text. android:textSize Used to set size of the text. android:background Used to set background color of the toggle button. android:drawableBottom Used to set drawable to the bottom of the text. android:drawableLeft Used to set drawable to left of the text. android:drawableRight Used to set drawable to the right of text. android:padding Used 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
作为模拟器运行以进行输出:
在这里,当我们运行上述代码时,模拟器中显示了两个开关。我们可以独立地改变开关的状态。