@@ -8,61 +8,70 @@ import androidx.recyclerview.widget.RecyclerView
8
8
import io.github.farshidroohi.extensions.onItemClickListener
9
9
import io.github.farshidroohi.extensions.onLoadMoreListener
10
10
import ir.farshid_roohi.customadapterrecyclerview.R
11
- import kotlinx.android.synthetic.main.activity_main.*
12
- import java.util.*
13
11
14
12
class SingleViewTypeActivity : AppCompatActivity () {
15
13
14
+ private lateinit var recyclerView: RecyclerView
15
+ private val singleViewTypeAdapter = SingleViewTypeAdapter ()
16
+
16
17
override fun onCreate (savedInstanceState : Bundle ? ) {
17
18
super .onCreate(savedInstanceState)
18
19
setContentView(R .layout.activity_single_view_type)
19
20
20
- val recyclerView = findViewById<RecyclerView >(R .id.recyclerView)
21
-
22
- val singleViewTypeAdapter = SingleViewTypeAdapter ()
21
+ recyclerView = findViewById(R .id.recyclerView)
23
22
24
23
// onClick Error Button
25
24
singleViewTypeAdapter.onRetryClicked = {
26
- singleViewTypeAdapter.loadingState()
27
- // fake request or load other items...
28
- recyclerView.postDelayed({
29
- singleViewTypeAdapter.loadedState(tempItems)
30
- }, 2000 )
25
+ handleOnRetryData()
31
26
}
32
27
33
28
// set Data in List
34
- singleViewTypeAdapter.loadedState(tempItems )
29
+ singleViewTypeAdapter.loadedState(fakeItems )
35
30
36
31
recyclerView.layoutManager = GridLayoutManager (this @SingleViewTypeActivity, 2 )
37
32
recyclerView.adapter = singleViewTypeAdapter
38
33
39
34
40
35
// set onLoad More Listener for Pagination
41
36
recyclerView.onLoadMoreListener {
42
- if (singleViewTypeAdapter.mustLoad) {
43
- singleViewTypeAdapter.loadingState()
44
- // failed state
45
- recyclerView.postDelayed({
46
- singleViewTypeAdapter.failedState()
47
- }, 2000 )
48
- }
37
+ handleOnLoadMore()
49
38
}
50
39
51
-
52
40
// Set onClick Item Listener
53
- recyclerView.onItemClickListener(onClickItem = { position ->
54
- showToast(" onClickItem : ${singleViewTypeAdapter.getItem(position)}$position " )
55
- }, onLongClickItem = { position ->
56
- showToast(" onLongClickItem : ${singleViewTypeAdapter.getItem(position)}$position " )
57
- })
41
+ recyclerView.onItemClickListener(
42
+ onClickItem = { position ->
43
+ val item = singleViewTypeAdapter.getItem(position)
44
+ showToast(" onClickItem : $item " )
45
+ }, onLongClickItem = { position ->
46
+ val item = singleViewTypeAdapter.getItem(position)
47
+ showToast(" onLongClickItem : $item " )
48
+ })
58
49
}
59
50
60
- fun showToast (message : String ) {
51
+ private fun showToast (message : String ) {
61
52
Toast .makeText(this , message, Toast .LENGTH_SHORT ).show()
62
53
}
63
54
55
+ private fun handleOnLoadMore () {
56
+ if (singleViewTypeAdapter.mustLoad) {
57
+ singleViewTypeAdapter.loadingState()
58
+ // failed state
59
+ recyclerView.postDelayed({
60
+ singleViewTypeAdapter.failedState()
61
+ }, 2000 )
62
+ }
63
+ }
64
+
65
+ private fun handleOnRetryData () {
66
+ singleViewTypeAdapter.loadingState()
67
+ // fake request or load other items...
68
+ recyclerView.postDelayed({
69
+ singleViewTypeAdapter.loadedState(fakeItems)
70
+ }, 2000 )
71
+ }
72
+
64
73
// Generate Fake Data For List
65
- private val tempItems : List <String >
74
+ private val fakeItems : List <String >
66
75
get() {
67
76
val items: MutableList <String > = ArrayList ()
68
77
for (i in 0 .. 21 ) {
0 commit comments