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

how can i make menu item (single) reset button?

我想制作重置按钮。 当我点击重置按钮时,ischecked 将被设置为 false for R.id.item1, R.id.item2R.id.item3.

当我点击按钮时,我想将 Group 'Mmenu' 勾选为 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()
    }

无效选项菜单()

这是重置的解决方案!!