private Bundle detailsbundle = new Bundle();
private onFABCLick mlistener;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_details, container, false);
TextView naam = (TextView) view.findViewById(R.id.name);
TextView adres = (TextView) view.findViewById(R.id.adress);
TextView gemeente = (TextView) view.findViewById(R.id.gemeente);
TextView deelgemeente = (TextView) view.findViewById(R.id.deelgemeente);
TextView postcode = (TextView) view.findViewById(R.id.postcode);
final ImageButton favourite = (ImageButton) view.findViewById(R.id.imageButton);
naam.setText(detailsbundle.getString(DETAILS_NAAM));
adres.setText(detailsbundle.getString(DETAILS_ADRES));
gemeente.setText(detailsbundle.getString(DETAILS_GEMEENTE));
deelgemeente.setText(detailsbundle.getString(DETAILS_DEELGEMEENTE));
postcode.setText(detailsbundle.getString(DETAILS_POSTCODE));
boolean isFavourite = detailsbundle.getBoolean(DETAILS_FAVOURITE);
if(isFavourite){
favourite.setImageResource(R.drawable.ic_star_black_18dp);
favourite.setTag(R.drawable.ic_star_black_18dp);
}
else{
favourite.setTag(R.drawable.ic_star_border_black_18dp);
}
favourite.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mlistener.onFavClick(favourite);
}
});
return view;
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof onFABCLick) {
mlistener = (onFABCLick) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement interface");
}
}
public interface onFABCLick{
public void onFavClick(ImageButton favourite);
}
In meiner Tätigkeit:Image mehr Klicks
public void onFavClick(ImageButton favourite) {
if ((Integer)favourite.getTag() == R.drawable.ic_star_border_black_18dp){
favourite.setImageResource(R.drawable.ic_star_black_18dp);
}
else{
favourite.setImageResource(R.drawable.ic_star_border_black_18dp);
}
}
Also im Grunde, was mein Code tun sollte: Wenn die Schaltfläche geklickt wird, und es ist ein Favorit, es aus der Datenbank entfernt wird (noch brauchen schreibe das, aber irrelevant) -> Icon ändert sich. Und umgekehrt. Wenn jemand jedoch seine Meinung ändert, muss er offensichtlich rückgängig gemacht werden, ohne die Seite zu ändern. Allerdings tut mein Code das nicht, es ist nur möglich, einmal auf die Schaltfläche zu klicken, beim zweiten Mal wird nichts getan (beide Möglichkeiten für den ersten Klick).
Wie kann ich das lösen?