android - 如何在 actionBar 但在 kotlin 中实现计数器
问题描述
我问这个问题是因为我到处搜索,但找不到任何解决问题的方法。正如标题所说,我在 Kotlin 中找不到任何东西,一切都在 Java 中,而且我是 Kotlin 的新手。我需要做一些事情,如下图所示。我看过以下链接,但它们对我来说并不特别有用:
这是我拥有的代码,对我不起作用的是来自柜台的项目,我应该称之为 TabListActivity (它向我显示一个列表),但它没有。
OnOptionsItemSelected
单击该项目时不认识我,我知道是因为我使用调试。
这是我的主要活动,称为TabActivity.kt
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.tab_menu, menu)
countButton = menu?.findItem(R.id.tab_list_button)
countButton?.setActionView(R.layout.tab_button)
var notif = countButton?.actionView as RelativeLayout
var tv: TextView = notif.findViewById(R.id.tabCount)
tv.text = TabInfo.count().toString()
countButton?.title = tv.text
return super.onCreateOptionsMenu(menu) }
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.forward_button -> {
TabInfo.currentWebView().goForward()
refreshForwardButton()
}
R.id.reload_button -> {
reloadCurrentTab()
return true
}
R.id.tab_list_button -> {
val intent = Intent(this, TabListActivity::class.java)
startActivity(intent)
return true
}
}
return super.onOptionsItemSelected(item)
}
我的菜单被称为tab_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/forward_button"
app:showAsAction="collapseActionView"
android:title="@string/go_forward"
android:icon="@drawable/ic_arrow_forward_black_24dp" />
<item android:id="@+id/reload_button"
app:showAsAction="collapseActionView"
android:title="@string/reload_page"
android:icon="@drawable/ic_refresh_black_24dp" />
<item android:id="@+id/tab_list_button"
app:showAsAction="always"
android:title="@string/number_tabs"
android:actionLayout="@layout/tab_button"
/>
</menu>
我的布局是tab_button.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="32sp"
android:layout_height="32sp"
xmlns:tools="http://schemas.android.com/tools">
<ImageView
android:id="@+id/img_button"
android:layout_width="32dp"
android:layout_height="32dp"
android:src="@drawable/ic_check_box_outline_blank_black_24dp"/>
<TextView
android:id="@+id/tabCount"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:textAlignment="center"
android:textColor="?attr/textcolor"
android:textSize="12sp"
android:textStyle="bold"
tools:text="1" />
</RelativeLayout>
当我在这里写下来时,我就是这样写的,它对我有用,但它只显示计数器而不是图标和计数器。
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.tab_menu, menu)
countButton = menu?.findItem(R.id.tab_list_button)
countButton?.title = TabInfo.count().toString()
countButton?.actionView?.
setBackgroundResource(R.drawable.ic_check_box_outline_blank_black_24dp)
return super.onCreateOptionsMenu(menu)
}
我的英语不是很好,对不起。谢谢
解决方案
推荐阅读
- c# - WPF按钮:如何修复双击以触发点击事件
- c++ - C++ - 处理几何插值中的浮点错误
- database - 如何恢复 Pervasive Db 备份?
- c# - 如何在全选的文本框中写入多个键符号?
- python - while循环的文本表达式在python中不起作用
- javascript - 如何在对象上设置 useState 数据
- javascript - 当它们达到 60 时,我怎样才能将秒数重置为 0
- css - html body 元素的最小高度
- embedded-linux - 无法升级 Yocto Krogoth 中元层的配方
- r - 我已经编写了一个函数,并试图通过 lapply 将其传递给数据框中的每一行