-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
好的。我現在編輯。 –