-2
最初我有一个ArrayList<Book>
完美的功能。但是,我想在PopUp菜单中显示我的书籍列表,因为AlertDialog.Builder
与setMultiChoiceItems
是我所做的合适选择。所以我不得不将这个ArrayList
转换成CharSequence
。到现在为止还挺好。现在的问题是:我想显示之前在RecyclerView中选择的选项(已经编码),但我需要我的对象的getter和setter。这怎么解决?比较不同类型的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
好的。我现在编辑。 –