Первоначально у меня был один ArrayList<Book>
прекрасно функциональный. Но я хотел показать свой список книг в PopUp Menu, потому что этот AlertDialog.Builder
с setMultiChoiceItems
был подходящим выбором, который я сделал. Поэтому мне пришлось преобразовать этот ArrayList
в CharSequence
. Все идет нормально. Проблема возникает сейчас: я хочу показать опцию (ы), ранее выбранную в RecyclerView (уже закодированную), но мне нужны эти геттеры и сеттеры моего объекта. Как это можно решить?Сравнить различные типы ArrayList
(EDIT)
fab.setOnClockListener (new View.OnClickListener() {
@Override
public void onClick(View v) {
final ArrayList<Integer> bookSel = new ArrayLis();
ArraList<Book> arrayBook = (ArrayList<Book>) bd.getBooks();
final CharSequence[] cs = new CharSequence[arrayBook.size()];
for (int i = 0; i < arrayBook.size(); i++) {
cs[i] = String.valueOf(arrayBook.get(i));
}
final AlertDialog.Builder alertBuilder = new AlertDialog.Builder (getActivity());
alertBuilder.setTitle("Books")
.setMultiChoiceItems(cs, null, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
if (isChecked) {
bookSel.add(which);
} else if (bookSel.contains(which)) {
bookSel.remove(Integer.valueOf(which));
}
}
});
alertBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onCLick(DialogInterface dialog, int which) {
ArrayList<String> listAux = new ArrayList<>();
for (int i = 0; i < bookSel.size(); i++) {
listAux.add(String.valueOf(cs[bookSel.get(i)]));
}
BookAdapter adp = new BookAdapter(getActivity(),/*send the object<Book>*/);
recyclerView.setAdapter(adp);
}
});
}
});
Если вы разделяете ваш код будет легко, чтобы помочь вам. Спасибо – Bethan
Хорошо. Сейчас я отредактирую. –