在android中单击时,imageView没有更改

时间:2013-06-28 05:45:16

标签: android checkbox android-imageview

我在android中制作了一个简单的自定义复选框程序,因为根据用户操作,我已经为“difault”和“checked”状态制作了两个图像我想要更改那些图像..我试过以下代码不起作用,

enter image description here

我的代码是:

final ImageView chekbx =(ImageView)dialog.findViewById(R.id.chk_login);
            if(chekbx.isSelected()){
                System.out.println("checkbox check");
                chekbx.setBackgroundResource(R.drawable.checkbox_ticked);
            }else{
                chekbx.setBackgroundResource(R.drawable.checkbox);
            }

4 个答案:

答案 0 :(得分:2)

为此目的使用选择器。

这是您的复选框:

          <CheckBox
            android:id="@+id/remb_ckh_box"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@drawable/check_box_selector" />

它的选择器:

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_checked="true" android:drawable="@drawable/checkbox_selected" />

<item android:state_checked="false" android:drawable="@drawable/checkbox_unselected" />

</selector>

答案 1 :(得分:1)

尝试使用此代码:

<强> EDITED

final ImageView chekbx =(ImageView)dialog.findViewById(R.id.chk_login);
boolean flag =false; //TAKE AS A PUBLIC VAR
chekbx.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        if(flag)
        {
            chekbx.setBackgroundResource(R.drawable.checkbox);
            flag=false;
        }
        else
        {
            System.out.println("checkbox check");
            chekbx.setBackgroundResource(R.drawable.checkbox_ticked);
            flag = true;
        }
    }
});

希望这会对你有所帮助。

答案 2 :(得分:0)

Android已经有了CheckBox视图,你不需要自己构建一个。

Checkbox API: http://developer.android.com/reference/android/widget/CheckBox.html

此复选框还可以使用选择器自定义图像: How to change default images of CheckBox

答案 3 :(得分:0)

    void onClick Login(View v)
    {
        if(checkbx.isSelected(){
            chekbx.setBackgroundResource(R.drawable.checkbox_ticked);
            <Set your new database with login details and phone ID to remember>
            //check your database for login details here with registered details
            }
        else{
            chekbx.setBackgroundResource(R.drawable.checkbox);
            //check your database for login details here with registered details
        }
    }   

这个逻辑应该对你有帮助。感谢。