Android 应用开发:UI开发(2)

目录

常用控件的使用方法

6、AlertDialog

7、Radio Button

8、CheckBox

9、ToggleButton


常用控件的使用方法

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"
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值