Ich habe gerade begonnen, zu Android zu entwickeln, bitte helfen.Klicken Sie auf ein Bild, um das Kontrollkästchen zu aktivieren?
Ich kann nicht herausfinden, was ich vermisse .. Die Checkbox funktioniert, ich möchte auch überprüfen, indem Sie auf das Bild tippen.
dieser Teil funktioniert gut:
holder.checkbox.setId(position);
holder.imageview.setId(position);
holder.checkbox.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
// TODO Auto-generated method stub
CheckBox cb = (CheckBox) v;
//ImageView cb1 = (ImageView) v;
int id = cb.getId();
if (thumbnailsselection[id])
{
cb.setChecked(false);
thumbnailsselection[id] = false;
} else
{
cb.setChecked(true);
thumbnailsselection[id] = true;
}
// ImageView im = (ImageView) v;
}
});
///////////////////////////////////////////////////////
hier ist das Problem:
holder.imageview.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
CheckBox cb = (CheckBox) v;
int id = v.getId();
if (thumbnailsselection[id])
{
cb.setChecked(false);
thumbnailsselection[id] = false;
} else
{
cb.setChecked(true);
thumbnailsselection[id] = true;
}
}});
Logcat:
java.lang.ClassCastException: android.support.v7.widget.AppCompatImageView cannot be cast to android.widget.CheckBox
Dank.
Zunächst IDs sind einzigartig, nicht th geben die gleiche ID zu Ihrem Imageview und Checkbox –
zeigen Sie Ihre Full-Code der Aktivität –
Ich denke, dies passiert, weil Sie "v" aus dem OnClick (View v) als Kontrollkästchen, aber es ist die ImageView –