Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Kotlin - Pytanie o budowanie aplikacji Android
Pyton_000
post 5.11.2018, 22:08:49
Post #1





Grupa: Zarejestrowani
Postów: 7 559
Pomógł: 1328
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Siemanko.

Ostanimi czasy zacząłem sobie dłubać w Kotlin małą apkę na Andka. Taka mobilna wersja jednego z serwisów które mam do obsługi danych. Nic wielkiego.

Mam sobie taki kod:

Kod
class MainActivity : AppCompatActivity() {

    var menu: Menu? = null

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        recycleView_main.layoutManager = LinearLayoutManager(this)

        fetchAndBuildList()

    }

    private fun fetchAndBuildList() {
        val request = Request.Builder().url("http://192.168.2.101/api/v1/user").build()
        val client = OkHttpClient()

        client.newCall(request).enqueue(object : Callback {
            override fun onFailure(call: Call, e: IOException) {
                TODO("not implemented")
            }

            override fun onResponse(call: Call, response: Response) {
                val gson = GsonBuilder().create()
                val userList = gson.fromJson(response.body()?.string(), Array<SimpleUser>::class.java)

                runOnUiThread {
                    val adapter = MainListAdapter(userList)

                    recycleView_main.adapter = adapter

                    setMenuFiltering(adapter)
                }
            }

        })
    }

    private fun setMenuFiltering(adapter: MainListAdapter) {
        val searchView = menu?.findItem(R.id.menu_search)?.actionView as SearchView

        searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {

            override fun onQueryTextSubmit(string: String?) = true

            override fun onQueryTextChange(string: String?): Boolean {
                adapter.filter.filter(string)
                return true
            }

        })
    }

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {

        menuInflater.inflate(R.menu.main, menu)

        this.menu = menu

        return super.onCreateOptionsMenu(menu)
    }
}


To jest aktywnośc która wyświela listę userów z możliwością wyszukiwania.

Teraz chciałem dodać do tego jeszcze Full Screenn Progress Bar (odpowiednik CSS Preloader)

Zastanawiam się czy są jakieś koncepty gdzie:

// mogę pobierać dane z REST przez okhttp3 (aktualnie jest enqueue)
// Generować widok
// Wrzucić przeloader zanim zaczytają się dane z REST i przegeneruje się widok.


Ja wieem że ten kod może wołać o pomstę do Nieba biggrin.gif Jako że poznaję dopiero ten język to chłonę nowinki.
Ew. może ktoś ma jakiś fajny blog o Kotlinie.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.11.2018 - 19:28