Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package android.example.dannymt_oblig2
- import android.support.v7.app.AppCompatActivity
- import android.os.Bundle
- import android.support.v7.widget.LinearLayoutManager
- import android.support.v7.widget.RecyclerView
- import android.telecom.Call
- import android.widget.Toast
- import com.google.gson.Gson
- import com.google.gson.reflect.TypeToken
- import okhttp3.Callback
- import okhttp3.OkHttpClient
- import okhttp3.Request
- import okhttp3.Response
- import java.io.IOException
- class MainActivity : AppCompatActivity() {
- private lateinit var recyclerView: RecyclerView
- private lateinit var viewAdapter: RecyclerView.Adapter<*>
- private lateinit var viewManager: RecyclerView.LayoutManager
- private lateinit var alpacas : MutableList<Alpaca>
- override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- setContentView(R.layout.activity_main)
- alpacas= getDataFromApiAndParseIt()
- viewManager = LinearLayoutManager(this)
- viewAdapter = ListAdapter(alpacas)
- recyclerView = findViewById<RecyclerView>(R.id.myRecyclerView).apply {
- // use this setting to improve performance if you know that changes
- // in content do not change the layout size of the RecyclerView
- setHasFixedSize(true)
- // use a linear layout manager
- layoutManager = viewManager
- // specify an viewAdapter (see also next example)
- adapter = viewAdapter
- }
- println(alpacas.get(0).name)
- }
- fun getDataFromApiAndParseIt() : MutableList<Alpaca> {
- val url = "https://www.uio.no/studier/emner/matnat/ifi/IN2000/v20/obligatoriske-oppgaver/alpakka2.json"
- val request = Request.Builder().url(url).build()
- val client = OkHttpClient()
- var alpacasHere : MutableList<Alpaca> = mutableListOf()
- client.newCall(request).enqueue(object: Callback {
- override fun onResponse(call: okhttp3.Call, response: Response) {
- if (response.isSuccessful) {
- val body = response.body?.string()
- if (body?.trim().equals("[]")) {
- this@MainActivity.runOnUiThread(java.lang.Runnable {
- Toast.makeText(this@MainActivity, "EMPTY JSON ARRAY!!!", Toast.LENGTH_SHORT).show();
- })
- }else {
- val gson = Gson()
- var mutableListAlpaca = object : TypeToken<MutableList<Alpaca>>() {}.type
- alpacasHere= gson.fromJson(body,mutableListAlpaca)
- println(alpacasHere.get(0).name)
- }
- }
- }
- override fun onFailure(call: okhttp3.Call, e: IOException) {
- println("Failed to execute")
- }
- })
- return alpacasHere
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement