目录
常用控件的使用方法
6、AlertDialog
AlertDialog 可以在当前界面弹出一个对话框,这个对话框是置顶与所有界面元素之上的,能够屏蔽其他控件的交互能力,因此 AlertDialog 一般用于提示一些非常重要的内容或者警告信息。比如为了防止用户误删重要内容,在删除前弹出一个确认对话框。
<Button
android:id="@+id/alertDialogButton"
android:text="alertDialogButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAllCaps="false"/>
class MainActivity:AppCompatActivity(),View.OnClickListener{
override fun onCreate(savedInstanceState:Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
button.setOnClickListener(this)
// !!!!
alertDialogButton.setOnClickListener(this)
}
override fun onClick(v:View?){
when(v?.id){
R.id.button -> {
// EditText
val inputEditText = editText.text.toString()
Toast.makeText(this,inputEditText,Toast.LENGTH_SHORT).show()
// ImageView
//imageView.setImageResource(R.drawable.img_2)
// ProgressBar
if(progressBar.visibility == View.VISIBLE){
progressBar.visibility = View.GONE
}else{
progressBar.visibility = View.VISIBLE
}
progressBar.progress = progressBar.progress+10
}
R.id.alertDialogButton -> {
AlertDialog.Builder(this).apply {
setTitle("This is Dialog")
setMessage("Something important.")
setPositiveButton("OK") { dialog, which ->
}
setNegativeButton("Cancel") { dialog, which ->
}
show()
}
}
}
}
}
7、Radio Button
(1)Radio Button 单选按钮,包含多个Radio Button,多个按钮只能选中一个。
(2)xml文件中RadioButton中有个android:checked属性,表示是否默认勾选,true表示默认被勾选。
(3)onCheckChangeListener( )获取监听
(4)isCheck( )方法,setCheck( )方法
右键包 -> New -> Activity -> EmptyActivity -> 命名为 RadioButton
radio_button.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:orientation="vertical"
android:layout_height="match_parent"
tools:context=".RadioButton">
<RadioGroup
android:id="@+id/genderGroup"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="性别:"/>
<RadioButton
android:id="@+id/maleRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="男"/>
<RadioButton
android:id="@+id/femaleRadioButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"/>
</RadioGroup>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<Button
android:id="@+id/okButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="确定" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="重置"/>
</LinearLayout>
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
android:text="男"/>
</LinearLayout>
RadioButton.kt
① 定义点击事件方法一:
class RadioButton : AppCompatActivity(),View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_radio_button)
val button : Button = findViewById(R.id.okButton)
button.setOnClickListener(this)
}
override fun onClick(v: View){
val textView: TextView = findViewById(R.id.textView)
val genderGroup :RadioGroup= findViewById(R.id.genderGroup)
when (v.id) {
R.id.okButton -> {
//点击按钮后获取RadioGroup中被选中的单选项
textView.setText(findViewById<RadioButton>(genderGroup.checkedRadioButtonId).text)
}
else ->{
}
}
}
}
② 定义点击事件方法二:
class RadioButton : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_radio_button)
val button: Button = findViewById(R.id.okButton)
val textView: TextView = findViewById(R.id.textView)
val genderGroup :RadioGroup= findViewById(R.id.genderGroup)
//RadioButton可以设置事件侦听
genderGroup.setOnCheckedChangeListener{
group,checkedId ->textView.setText(findViewById<RadioButton>(checkedId).text)
}
button.setOnClickListener{
}
}
}
8、CheckBox
(1)checkbox复选框
(2)isChecked( ),setCheck( )
activity_check_box_test.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".CheckBoxTest">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="所在城市"/>
<CheckBox
android:id="@+id/cbBeijing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="北京"/>
<CheckBox
android:id="@+id/cbShanghai"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="18sp"
android:text="上海"/>
<CheckBox
android:id="@+id/cbGuangzhou"
android:textSize="18sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="广州"/>
</LinearLayout>
<Button
android:id="@+id/buttonOk"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="确定"
android:textSize="18sp" />
<TextView
android:id="@+id/textView2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"/>
</LinearLayout>
CheckBoxTest.kt
class CheckBoxTest : AppCompatActivity(),View.OnClickListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_check_box_test)
buttonOk.setOnClickListener(this)
}
override fun onClick(v: View) {
when (v.id) {
R.id.buttonOk -> {
val cities = StringBuffer()
if (cbBeijing.isChecked) {
cities.append(cbBeijing.text)
}
if (cbGuangzhou.isChecked) {
cities.append(cbGuangzhou.text)
}
if (cbShanghai.isChecked) {
cities.append(cbShanghai.text)
}
textView2.text = cities
textView2.textSize = 37.6F
}
else -> {
}
}
}
}
9、ToggleButton
(1)setChecked( )、isChecked( )
(2)ToggleButton实例:
①创建ToggleButtonTest.kt,然后编写xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ToggleButtonTest">
<ToggleButton
android:id="@+id/toggleButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="启用"/>
<TextView
android:id="@+id/textView3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="18sp"
android:gravity="center"/>
</LinearLayout>
②在ToggleButtonTest.kt中添加对应的点击事件
class ToggleButtonTest : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_toggle_button)
toggleButton.setOnClickListener {
if(toggleButton.isChecked){
textView3.text = "Turn on"
}else{
textView3.text = "Turn off"
}
}
}
}