· 8 years ago · Dec 14, 2017, 05:50 AM
1 private List<Contact> contacts;
2 private ContactAdapter contactAdapter;
3 private Random random;
4
5 @Override
6 protected void onCreate(Bundle savedInstanceState) {
7 super.onCreate(savedInstanceState);
8 setContentView(R.layout.activity_main);
9 Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
10 setSupportActionBar(toolbar);
11
12 contacts = new ArrayList<>();
13 random = new Random();
14
15 for (int i = 0; i < 20; i++) {
16 Contact contact = new Contact();
17 contact.setPhone("085710830260");
18 contact.setEmail("dekikurnia" + i + "@gmail.com");
19 contacts.add(contact);
20 }
21
22 RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
23
24 recyclerView.setLayoutManager(new LinearLayoutManager(this));
25 contactAdapter = new ContactAdapter(recyclerView, contacts, this);
26 recyclerView.setAdapter(contactAdapter);
27
28 contactAdapter.setOnLoadMoreListener(new OnLoadMoreListener() {
29 @Override
30 public void onLoadMore() {
31 if (contacts.size() <= 20) {
32 contacts.add(null);
33 contactAdapter.notifyItemInserted(contacts.size() - 1);
34 new Handler().postDelayed(new Runnable() {
35 @Override
36 public void run() {
37 contacts.remove(contacts.size() - 1);
38 contactAdapter.notifyItemRemoved(contacts.size());
39
40 int index = contacts.size();
41 int end = index + 10;
42 for (int i = index; i < end; i++) {
43 Contact contact = new Contact();
44 contact.setPhone("085710830260");
45 contact.setEmail("dekikurnia" + i + "@gmail.com");
46 contacts.add(contact);
47 }
48 contactAdapter.notifyDataSetChanged();
49 contactAdapter.setLoaded();
50 }
51 }, 5000);
52 } else {
53 Toast.makeText(MainActivity.this, "Loading data completed", Toast.LENGTH_SHORT).show();
54 }
55 }
56 });
57 }