for
(TextView textView : getTextViews()) {
textView.setOnClickListener(
this
);
}
private
List<TextView> getTextViews() {
...
}
private
val FavouriteAdapter favouriteAdapter;
public
void
onCreate(Bundle saveInstance) {
super
.onCreate(saveInstance);
setupRecyclerView();
}
private
RecyclerView recyclerView;
private
void
setupRecyclerView() {
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
favouriteAdapter =
new
FavouriteAdapter();
recyclerView.setAdapter(favouriteAdapter);
recyclerView.setLayoutManager(
new
LinearLayoutManger(getContext());
recyclerView.setClipToPadding(
false
);
recyclerView.hasFixedSize(
true
);
}
private
List<String> favourites =
new
ArrayList<>();
@Override
public
void
onClick(View view) {
TextView selectedTextView = (TextView) view;
if
(selectedTextView ==
null
)
throw
new
IllegalArgumentException(
"Only textview can be selected"
);
addToFavourite(selectedTextView.getText());
}
private
void
addToFavourite(String title) {
if
(favourites.contains(title))
return
;
favourites.add(title);
favouriteAdapter.submitList(favourites);
}
private
void
updateFavourite(String title) {
val index = favourites.indexOf(title);
if
(index <
0
)
throw
new
NoSuchElementException(
"Cannot find "
+ title);
favourites[index] = title
favouriteAdapter.submitList(favourites);
}
private
void
deleteFavourite(String title) {
favourites.remove(title);
favouriteAdapter.submitList(favourites);
}
@Override
public
void
onDestroy() {
recyclerView.adapter =
null
;
}