我知道“接口(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/