Я создаю приложение для Android с настраиваемым списком с плавающей кнопкой действия, но когда я нажимаю кнопку с плавающим действием, она меняет последнюю строку, а не строку, где находится кнопка плавающего действия. Как я могу решить эту проблему?
Это мой код:
public class CustomSeasonsListBaseAdapter extends BaseAdapter implements ListAdapter {
private Show show;
private List<Season> seasons;
private MainActivity mainAct = MainActivity.getAct();
private TextView eNumber, sNumber;
private FloatingActionButton minusButton, addButton, deleteButton;
public CustomSeasonsListBaseAdapter(Show show) {
this.show = show;
this.seasons = show.getSeasons();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = mainAct.getLayoutInflater().inflate(R.layout.custom_seasons_list, parent, false);
final Season season = seasons.get(position);
eNumber = view.findViewById(R.id.episodeNumber);
sNumber = view.findViewById(R.id.seasonNumber);
minusButton = view.findViewById(R.id.minusButton);
addButton = view.findViewById(R.id.addButton);
deleteButton = view.findViewById(R.id.deleteSeasonButton);
sNumber.setText("Season " + season.getSeason());
eNumber.setText(season.getWatchedEpisodes() + "");
minusButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//eNumber = view.findViewById(R.id.episodeNumber);
season.removeWatchedEpisode();
eNumber.setText(season.getWatchedEpisodes() + "");
show.update();
update();
}
});
addButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//eNumber = view.findViewById(R.id.episodeNumber);
season.addWatchedEpisode();
eNumber.setText(season.getWatchedEpisodes() + "");
show.update();
update();
}
});
deleteButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
show.removeSeason(season);
update();
}
});
return view;
}
public void update() {
notifyDataSetChanged();
}
}
Я использую BaseAdapter для создания пользовательского ListView.