Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.02 KB | None | 0 0
  1. package android.example.dannymt_oblig2
  2.  
  3. import android.support.v7.app.AppCompatActivity
  4. import android.os.Bundle
  5. import android.support.v7.widget.LinearLayoutManager
  6. import android.support.v7.widget.RecyclerView
  7. import android.telecom.Call
  8. import android.widget.Toast
  9. import com.google.gson.Gson
  10. import com.google.gson.reflect.TypeToken
  11. import okhttp3.Callback
  12. import okhttp3.OkHttpClient
  13. import okhttp3.Request
  14. import okhttp3.Response
  15. import java.io.IOException
  16.  
  17. class MainActivity : AppCompatActivity() {
  18. private lateinit var recyclerView: RecyclerView
  19. private lateinit var viewAdapter: RecyclerView.Adapter<*>
  20. private lateinit var viewManager: RecyclerView.LayoutManager
  21.  
  22. private lateinit var alpacas : MutableList<Alpaca>
  23. override fun onCreate(savedInstanceState: Bundle?) {
  24. super.onCreate(savedInstanceState)
  25. setContentView(R.layout.activity_main)
  26.  
  27.  
  28.  
  29. alpacas= getDataFromApiAndParseIt()
  30.  
  31.  
  32. viewManager = LinearLayoutManager(this)
  33. viewAdapter = ListAdapter(alpacas)
  34.  
  35. recyclerView = findViewById<RecyclerView>(R.id.myRecyclerView).apply {
  36. // use this setting to improve performance if you know that changes
  37. // in content do not change the layout size of the RecyclerView
  38. setHasFixedSize(true)
  39.  
  40. // use a linear layout manager
  41. layoutManager = viewManager
  42.  
  43. // specify an viewAdapter (see also next example)
  44. adapter = viewAdapter
  45. }
  46.  
  47. println(alpacas.get(0).name)
  48. }
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55. fun getDataFromApiAndParseIt() : MutableList<Alpaca> {
  56. val url = "https://www.uio.no/studier/emner/matnat/ifi/IN2000/v20/obligatoriske-oppgaver/alpakka2.json"
  57.  
  58. val request = Request.Builder().url(url).build()
  59.  
  60.  
  61. val client = OkHttpClient()
  62.  
  63. var alpacasHere : MutableList<Alpaca> = mutableListOf()
  64.  
  65. client.newCall(request).enqueue(object: Callback {
  66.  
  67. override fun onResponse(call: okhttp3.Call, response: Response) {
  68.  
  69. if (response.isSuccessful) {
  70. val body = response.body?.string()
  71.  
  72. if (body?.trim().equals("[]")) {
  73. this@MainActivity.runOnUiThread(java.lang.Runnable {
  74. Toast.makeText(this@MainActivity, "EMPTY JSON ARRAY!!!", Toast.LENGTH_SHORT).show();
  75. })
  76. }else {
  77. val gson = Gson()
  78.  
  79. var mutableListAlpaca = object : TypeToken<MutableList<Alpaca>>() {}.type
  80. alpacasHere= gson.fromJson(body,mutableListAlpaca)
  81.  
  82. println(alpacasHere.get(0).name)
  83.  
  84. }
  85.  
  86.  
  87. }
  88.  
  89. }
  90.  
  91.  
  92. override fun onFailure(call: okhttp3.Call, e: IOException) {
  93.  
  94. println("Failed to execute")
  95. }
  96.  
  97. })
  98. return alpacasHere
  99. }
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement