在android中按下单选按钮时图像不会改变

发布于 2025-01-19 09:52:27 字数 1358 浏览 0 评论 0原文

我正在尝试在radiogroup中在三个radiobutton之间更改图像,以便每个按钮在相同的ImageView上显示不同的图像。但这无法正常工作,所以显然我缺少一些东西。

该按钮在XML

<ImageView
    android:id="@+id/imageView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="39dp"
    android:layout_marginEnd="24dp"
    android:layout_marginBottom="24dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@id/guideline3"
    app:layout_constraintStart_toEndOf="@+id/guideline2"
    app:layout_constraintTop_toBottomOf="@+id/radioGroup" />

按钮组的kotlin代码为:

        when (binding.radioGroup.checkedRadioButtonId) {
        binding.radioButtonLondon.id -> {
            binding.textClock.timeZone = "Europe/London"
            binding.imageView.setImageResource(R.drawable.london)
        }

        binding.radioButtonNewYork.id -> {
            binding.textClock.timeZone = "America/New_York"
            binding.imageView.setImageResource(R.drawable.newyork)
        }

        binding.radioButtonBaijing.id -> {
            binding.textClock.timeZone = "CST6CDT"
            binding.imageView.setImageResource(R.drawable.baijing)
        }

    }

但这不起作用,图像不会更改。那我想念什么?

I'm trying to change an image between three RadioButton in a RadioGroup so that each button displays a different image on the same ImageView. But it's not working, so clearly I'm missing something.

The button is declared in XML

<ImageView
    android:id="@+id/imageView"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginStart="16dp"
    android:layout_marginTop="39dp"
    android:layout_marginEnd="24dp"
    android:layout_marginBottom="24dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toStartOf="@id/guideline3"
    app:layout_constraintStart_toEndOf="@+id/guideline2"
    app:layout_constraintTop_toBottomOf="@+id/radioGroup" />

the kotlin code for the button group is:

        when (binding.radioGroup.checkedRadioButtonId) {
        binding.radioButtonLondon.id -> {
            binding.textClock.timeZone = "Europe/London"
            binding.imageView.setImageResource(R.drawable.london)
        }

        binding.radioButtonNewYork.id -> {
            binding.textClock.timeZone = "America/New_York"
            binding.imageView.setImageResource(R.drawable.newyork)
        }

        binding.radioButtonBaijing.id -> {
            binding.textClock.timeZone = "CST6CDT"
            binding.imageView.setImageResource(R.drawable.baijing)
        }

    }

but this doesn't work the image doesn't change. So what am I missing?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

蓝海 2025-01-26 09:52:27

我使用binding.radiogroup.checkedradiobuttonid当我应该使用binding.radiogroup.setononcheckedchangelistener {_,checkedid--&gt;时,我做了更改解决问题时。

I used binding.radioGroup.checkedRadioButtonId when I should have used binding.radioGroup.setOnCheckedChangeListener { _, checkedId ->, when I did the change it solved the problem.

一笔一画续写前缘 2025-01-26 09:52:27

使用 onClickListener 而不是 OnCheckedChangeListener

use onClickListener instead of OnCheckedChangeListener

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文