简体   繁体   English

复选框选中后如何更改图像

[英]How to change image when checkbox checked

i have this floating image called back in my service 我在我的服务中调用了此浮动图像
MyService.java MyService.java

    back = new ImageView(this);
    back.setBackgroundResource(R.drawable.quick_launch_pressed_pink);
    back.setImageResource(R.drawable.back);

i want to change the ImageResource by calling MyService on another class, but my application force closed. 我想通过在另一个类上调用MyService来更改ImageResource,但我的应用程序已关闭。 here is my code on MainActivity.java 这是我在MainActivity.java上的代码

    public void addListenerOnCb() {

    chb = (CheckBox) findViewById(R.id.cb);
    final MyService ms = new MyService();
    chb.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            //is chkIos checked?
            if (((CheckBox) v).isChecked()) {
                ms.back.setImageResource(R.drawable.home);
            }

        }
    });

}

add two different images for checked & unchecked in drawable create xml file checkbox_selected.xml in your drawable folder 在可绘制文件夹中添加两个不同的图像,以供选中和未选中图像创建xml文件checkbox_selected.xml

checkbox_selected.xml checkbox_selected.xml

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/remember_me_selected" />
    <item android:state_selected="true" android:drawable="@drawable/remember_me_selected" />
    <item android:state_activated="true" android:drawable="@drawable/remember_me_selected" />
    <item android:drawable="@drawable/remember_me" />
</selector>

ImageView in url xml code 网址xml代码中的ImageView

       <ImageView
            android:id="@+id/remember_checkbox_img"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_weight="0.3"
            android:clickable="true"
            android:src="@drawable/checkbox_selected" />

use this for CheckBox 将此用于CheckBox

    checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
                        @Override
                        public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
                            if(b)
                           {
              // do something
                            }
                            else
                             {
                          // do another something
                               }
                        }
                    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM