我在android中制作了一个简单的自定义复选框程序,因为根据用户操作,我已经为“difault”和“checked”状态制作了两个图像我想要更改那些图像..我试过以下代码不起作用,
我的代码是:
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);
}
答案 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
}
}
这个逻辑应该对你有帮助。感谢。