gpt4 book ai didi

android - 如何在Android中使用界面

转载 作者:行者123 更新时间:2023-12-02 13:06:59 24 4
gpt4 key购买 nike

我知道“接口(interface)”的概念,但我很难理解如何在 android 开发中使用它们。
假设我创建了一个界面来决定是否显示进度条 -

interface ProgressBarInterface {
fun showProgressBar()
fun hideProgressBar()
}
我在单个 Activity 应用程序中的 BaseActivity/MainActivity 中实现了这个:
class BaseActivity : AppCompatActivity() , ProgressBarInterface {
private val TAG = "MainActivity"


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

}

override fun showProgressBar() {

}

override fun hideProgressBar() {

}
}
在我的其他 Activity 中,我有一个按钮,当我点击它时,我想触发 showProgressBar在基础 Activity 中:
  button.setOnClickListener { 
//Show progress bar
}
如何与界面交互以触发基本 Activity 中的功能?

最佳答案

由于您已经在 BaseActivity 中实现了接口(interface),因此您可以在接口(interface)方法中添加您需要做的事情,然后在您的 Activity 中的任何位置调用它们,如果您正在寻找将此 BaseActiviy 扩展为你需要更多的 Activity 来使这个 BaseActivity 抽象然后你可以在每个 Activity 中扩展这个 BaseClass 并只使用接口(interface)方法

abstract class BaseActivity : AppCompatActivity() , ProgressBarInterface {
private val TAG = "MainActivity"


override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)

}

override fun showProgressBar() {
progressBar.visibility = View.VISIBLE
}

override fun hideProgressBar() {
progressBar.visibility = View.GONE
}
}
然后在您的 Activity 中,您可以从 BaseActivity() 扩展并使用您在该 BaseActivity() 中定义的接口(interface)方法来防止再次对其进行编码,您可以这样做
class FirstActivity : BaseActivity() {

...

button.setOnClickListener {
showProgressBar()
}
显示和隐藏 View 的更简单方法?使用扩展功能
fun View.show() {
this.visibility = View.VISIBLE
}

fun View.hide() {
this.visibility = View.GONE
}
您可以在任何类中定义该扩展,例如 ViewUtils.kt然后打电话
 button.setOnClickListener {
progressBar.show()
}
或者
button.setOnClickListener {
progressBar.hide()
}

关于android - 如何在Android中使用界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62677655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com