界面组成:
功能代码:
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.EditText
import android.widget.ImageView
import android.widget.ProgressBar
import android.widget.TextView
import android.widget.Toast
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AlertDialog
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
class MainActivity : BaseActivity() {
private lateinit var editText: EditText
private lateinit var viewText: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
enableEdgeToEdge()
setContentView(R.layout.activity_main)
ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main)) { v, insets ->
val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
insets
}
//以上为Android Studio自动生成
viewText = findViewById<TextView>(R.id.secondTV)
editText = findViewById<EditText>(R.id.editText)
val button = findViewById<Button>(R.id.button)
val image = findViewById<ImageView>(R.id.imageView)
val progressBarH = findViewById<ProgressBar>(R.id.progressBarH)
val progressBar = findViewById<ProgressBar>(R.id.progressBar)
button.setOnClickListener() {
val message = editText.text.toString()
//设置图片素材
image.setImageResource(R.drawable.tzuyu)
if(message == "") {
Toast.makeText(this, R.string.warning, Toast.LENGTH_SHORT).show()
} else {
viewText.text = getString(R.string.greeting, "main", message)
//设置进度条可见性,默认为不可见
if (progressBar.visibility != View.VISIBLE) {
progressBar.visibility = View.VISIBLE
}
//设置警告对话框
AlertDialog.Builder(this).apply {
setTitle("This is a Diaglog") //标题
setMessage("Maybe there's something wrong") //讯息
//设置正确按钮及其动作
setPositiveButton("OK") { dialog, which ->
progressBar.visibility = View.GONE
}
//设置正确按钮及其动作
setNegativeButton("Cancel") { dialog, which ->
}
show()
}
/*if (progressBar.visibility != View.VISIBLE) {
progressBar.visibility = View.VISIBLE
}
//设置条状进度条,每点击一次+10进度
//进度满时关闭进度条,并将进度清理
progressBarH.progress = progressBarH.progress + 10
if (progressBarH.progress == progressBarH.max) {
progressBarH.visibility = View.GONE
progressBarH.progress = 0
}*/
}
}
}
}
实现效果:
注:点击“OK”关闭进度条 ,点击“Cancel”保持原状