Witam,
Mam pewien problem otóż, chodzi o edycję nazwy karty,problem następuje gdy dodam kolejna kartę chce zmienić nazwę tej karty zmienia się ale zmienia się automatycznie nazwa pierwszej karty nie wiem w czym problem.
Override
public void onBindViewHolder(CardViewHolder holder, final int position) {
final Card card = cardsList.get(position);
holder.nameCard.setText(card.getNameCard());
holder.setCurrentDateText.setText(card.getCreateDate());
holder.setExpirationDateText.setText(card.getExpirationDate());
holder.menu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
PopupMenu popupMenu = new PopupMenu(mContext, v);
popupMenu.inflate(R.menu.cardmenu);
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
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 boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
//edycja nazwy karty
case R.id.editCard:
AlertDialog.Builder alert = new AlertDialog.Builder(mContext);
LayoutInflater inflater = LayoutInflater.from(mContext);
View alterView = inflater.inflate(R.layout.editcarddialog, null);
alert.setView(alterView);
TextView editTextView = (TextView) alterView.findViewById(R.id.editCardText);
editTextView.setTypeface(custom_fonts);
try {
nameCardEditTextDecrypt = AesCrypt.decrypt(key, card.getNameCard());
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
nameCardEditText = (EditText) alterView.findViewById(R.id.nameCardEditText);
nameCardEditText.setTypeface(custom_fonts);
nameCardEditText.setText(nameCardEditTextDecrypt);
alert.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
}).setPositiveButton(R.string.save, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String newNameCardString = nameCardEditText.getText().toString();
try {
nameCardEditTextEncrypt = AesCrypt.encrypt(key, newNameCardString);
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
int indexOf = cardsList.get(position).setNameCard(nameCardEditTextEncrypt);
cardsList.set(indexOf, card);
databaseHandler.updateCard(card);
notifyItemChanged(position);
}
});
alert.create();
alert.show();
break;
return false;
}
});
popupMenu.show();
}
});
}