Witam,
Mam listę kart. Pojedyncza karta zawiera opcję : edytuj nazwę, usuń kartę, informacja oraz ustaw jako domyślną. Domyślna karta tworzy się na dwa sposoby
- Gdy na liście kart nie ma żadnych kart. Po utworzeniu karty przechodzimy na listę kart i automatycznie mam zmienione obramowanie na zielono .
*Gdy chcemy zmienić inną kartę na domyślną.
Problem pojawia się gdy karta domyślna jest usuwana chciałabym ją aby karta domyślna była karta o pozycji 0 .
private static int lastCheckedPos = 0;
@Override
public void onBindViewHolder(CardViewHolder holder, final int position) {
final Card card = cardsList.get(position);
holder.nameCard.setText(card.getNumberCard());
holder.setExpirationDateText.setText(card.getExpirationDate());
//ustawienie zaznaczenia na wybranej pozycji
// karta domyśna
if (position == lastCheckedPos) {
holder.cardView.setBackgroundResource(R.drawable.bordercardview);
holder.menu.setOnClickListener(new View.OnClickListener() {
Typeface custom_fonts = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Regular.ttf");
Typeface custom_fonts_Bold = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Bold.ttf");
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(mContext, v);
popupMenu.inflate(R.menu.cardmenudefault);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.editCardD:
break;
case R.id.deleteCardD:
AlertDialog.Builder alert2 = new AlertDialog.Builder(mContext);
LayoutInflater inflater2 = LayoutInflater.from(mContext);
View alertView2 = inflater2.inflate(R.layout.deletecarddialog, null);
alert2.setView(alertView2);
alert2.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setPositiveButton(R.string.deleteCardstring, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
databaseHandler.deleteCard(card);
cardsList.remove(position);
notifyDataSetChanged();
if (cardsList.size() == 0) {
Intent start = new Intent(mContext, MainActivityEmpty.class);
start.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
mContext.getApplicationContext().startActivity(start);
}
}
});
alert2.create();
alert2.show();
break;
case R.id.informationD:
}
return true;
}
});
popupMenu.show();
}
});
} else {
holder.cardView.setCardBackgroundColor(Color.WHITE);
holder.menu.setOnClickListener(new View.OnClickListener() {
Typeface custom_fonts = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Regular.ttf");
Typeface custom_fonts_Bold = Typeface.createFromAsset(mContext.getAssets(), "fonts/OpenSans-Bold.ttf");
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(mContext, v);
popupMenu.inflate(R.menu.cardmenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.editCard:
break;
case R.id.deleteCard:
break;
case R.id.informationAboutCard:
break;
case R.id.defaultCard:
int prePos = lastCheckedPos;
lastCheckedPos = position;
notifyItemChanged(prePos);
notifyItemChanged(lastCheckedPos);
mySharepreference.saveNumberCard(mContext, card.getId());
break;
}
return false;
}
});
popupMenu.show();
}
});
}