如何制作菜单项(单个)重置按钮



我想制作重置按钮。当我单击重置按钮时,对于R.id.item1R.id.iitem2R.id.item3ischecked将设置为false

当我点击按钮时,我想将"菜单"分组为假

我在onCreateOptionsMenu(menu: Menu)中尝试了button.setOnClickListener(){item.isChecked = false}但没用。。。

我在when (item.itemId) {R.id.itemRotate ->后面也试过同样的方法但也没用。。。

class MainActivity : AppCompatActivity() {

public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
title = "제주도 풍경"
button.setOnClickListener(){
imageView1.visibility = View.INVISIBLE
imageView1.rotation = Float.parseFloat("0")
edtAngle.setText("0")
}
}
override fun onCreateOptionsMenu(menu: Menu): Boolean {
super.onCreateOptionsMenu(menu)
val mInflater = menuInflater
mInflater.inflate(R.menu.menu1, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem) : Boolean {
when (item.itemId) {
R.id.itemRotate -> {
imageView1.visibility = View.VISIBLE
imageView1.rotation = Float.parseFloat(edtAngle.text.toString())
return true
}
R.id.item1 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju2)
item.isChecked = true
return true
}
R.id.item2 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju14)
item.isChecked = true
return true
}
R.id.item3 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju6)
item.isChecked = true
return true
}
}
return false
}
}

您可以使用HashMap:

var checked: HashMap<Int, Boolean> = HashMap()

初始化为错误

val ids = listOf(R.id.item1, R.id.item2, R.id.item3)
ids.forEachIndexed { index, _ ->
checked[index] = false
}

然后

when (item.itemId) {
R.id.itemRotate -> {
imageView1.visibility = View.VISIBLE
imageView1.rotation = Float.parseFloat(edtAngle.text.toString())
return true
}
R.id.item1 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju2)
checked[item.itemId] = true
return true
}
R.id.item2 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju14)
checked[item.itemId] = true
return true
}
R.id.item3 -> {
imageView1.visibility = View.VISIBLE
imageView1.setImageResource(R.drawable.jeju6)
checked[item.itemId] = true
return true
}
}

重置:

fun reset() {
ids.forEachIndexed { index, _ ->
checked[index] = false
}
}

在此调用:

button.setOnClickListener(){
imageView1.visibility = View.INVISIBLE
imageView1.rotation = Float.parseFloat("0")
edtAngle.setText("0")
reset()
}

invalidateOptionsMenu((

这是重置的解决方案!!

最新更新