Мне нужно добавить Activity
, где я могу перечислять элементы ArrayList<CustomClass>
, и я видел там более новый и лучший способ отображения списков - RecyclerView
.
Мой вопрос заключается в том, как реализовать это в моем приложении.
Я обнаружил, что мне нужно использовать Adapter
, но я не совсем понимаю, как правильно реализовать весь процесс.
Если вам интересно, я имею в виду это примеры документов, которые я читал.
EDIT:
После обновления моего кода он говорит, что не может разрешить символ setOnEntryClickListener
:
public class voting extends Activity {
RecyclerView myList;
private ArrayList<Player> players; // Players
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_voting);
Intent intent = this.getIntent();
Bundle bundle = intent.getExtras();
players = (ArrayList<Player>)bundle.getSerializable("PLAYERS");
myList = (RecyclerView) findViewById(R.id.charactersList);
myList.setLayoutManager(new LinearLayoutManager(this));
CoursesAdapter adapter = new CoursesAdapter(players);
myList.setAdapter(adapter);
}
// OR RecyclerView with a click listener
CoursesAdapter clickAdapter = new CoursesAdapter(players);
clickAdapter.setOnEntryClickListener(new CoursesAdapter.OnEntryClickListener() {
@Override
public void onEntryClick(View view, int position) {
// stuff that will happen when a list item is clicked
}
});
recyclerView.setAdapter(clickAdapter);
}
Итак, я думал, что поставил interface
в неправильное место (возможно, очень)), infact Я поместил его в класс адаптера в конце его сразу после метода onAttachedToRecyclerView()
:
@Override
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
super.onAttachedToRecyclerView(recyclerView);
}
private OnEntryClickListener mOnEntryClickListener;
public interface OnEntryClickListener {
void onEntryClick(View view, int position);
}
public void setOnEntryClickListener(OnEntryClickListener onEntryClickListener) {
mOnEntryClickListener = onEntryClickListener;
}
}