Thursday, August 24, 2017

Membuat datalist tampil pada listview dan recyclerview di kotlin

Hii, Salam sejahtera Kuy' kali ini kita akan membuat satu aplikasi sederhana menggunakan kotlin, yang biasanya pakai java untuk depelov android, untuk beralih di kotlin itu enak banget, itu karena bahasa kotlin itu sederhana banget. oh iya kesempatan kali ini kita akan membahas gimana membuat aplikasi sederhana menampilkan data array di listview dan recylerview,
aplikasi sangat sederhana ya.
ok langsung saja buat project baru anda di kotlin, jangan lupa di convert dulu ke bahasa kotlin untuk yang mengguanakan androi studio versi 2.3.3 -.

kita akan perlu file seperti dibawah ini





untuk itu sediakan file gambar yang anda inginkan jika inginkan di letakan di folder drawable  :
file MainActivity
import android.content.Intent
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_main.*

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        btnlistview.setOnClickListener{            actionPindah(SimpleActivity())
        }        btnrecylerview.setOnClickListener{            actionPindah(RecylerActivity())
        }
    }

    private fun actionPindah(simpleActivity: Any) {
        startActivity(Intent(applicationContext,simpleActivity::class.java))


    }
}


File CustomAdapter
import android.app.Activity
import android.content.Intent
import android.support.v7.widget.RecyclerView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.TextView

/** * Created by Server on 22/08/2017. */class CustomAdapter :RecyclerView.Adapter<CustomAdapter.Myholder> {
    var c : Activity? =null    var databuah2 : Array<String>?=null    var datagamabr : Array<Int>?=null    constructor(recylerActivity: RecylerActivity, dataBuah: Array<String>, dataGambar: Array<Int>)
    {
        c = recylerActivity
        databuah2 = dataBuah
        datagamabr = dataGambar
    }
        //set data ke recylerview    override fun onBindViewHolder(holder: Myholder?, position: Int) {
        //manggil dan set data        holder?.txt?.text = databuah2?.get(position)
        holder?.img?.setImageResource(datagamabr?.get(position)!!)

        holder?.img?.setOnClickListener{
            var intent = Intent(c,DetailBuah::class.java)
            intent.putExtra("txt",databuah2?.get(position))
            intent.putExtra("img",datagamabr?.get(position))
            c?.startActivity(intent)
        }


        //TODO("not implemented") //To change body of created functions use File | Settings | File Templates.    }
//mencreate pada layout list item    override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int): Myholder {
        var view = LayoutInflater.from(c).inflate(R.layout.list_item,parent,false)
        return Myholder(view)

        //TODO("not implemented") //To change body of created functions use File | Settings | File Templates.    }
    //tampilkan data    override fun getItemCount(): Int {
        //return data gmbr        return databuah2?.size!!
        //TODO("not implemented") //To change body of created functions use File | Settings | File Templates.    }

    //deklarasi id pada customAdapter, id yang ada pada list_item    class Myholder(itemView: View?) : RecyclerView.ViewHolder(itemView) {
    var txt : TextView?= itemView?.findViewById(R.id.namabuah)
        var img : ImageView?= itemView?.findViewById(R.id.imglsitietm)


    }

}

File DetailBuah
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import kotlinx.android.synthetic.main.activity_detail_buah.*

class DetailBuah : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_detail_buah)

        //membuat variabel dan di tangkap data dri intent        var tangkap = intent.getStringExtra("txt")
        var tangkap2 = intent.getIntExtra("img",0)

        //menangkap data intent dan di set ke layout        detailtxt.text = tangkap
        imgdetail.setImageResource(tangkap2)
    }
}

File SimpleActiivty
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.ArrayAdapter
import kotlinx.android.synthetic.main.activity_simple.*
import java.util.*

class SimpleActivity : AppCompatActivity() {
    var dataArray = arrayOf("10","50","80","40","100","30","-10","70","60")

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_simple)
        Arrays.sort(dataArray)
        var adapter = ArrayAdapter(SimpleActivity@this, android.R.layout.simple_list_item_1,dataArray)
         listview.adapter= adapter
    }
}

File RecylerActivity
import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.support.v7.widget.LinearLayoutManager
import kotlinx.android.synthetic.main.activity_recyler.*

class RecylerActivity : AppCompatActivity() {
    //deklarasi    var dataBuah = arrayOf("alpukat","durian","jambuair","manggis","strawberry")
    var dataGambar= arrayOf(R.drawable.alpukat,R.drawable.durian,R.drawable.jambuair,
                            R.drawable.manggis,R.drawable.strawberry)

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_recyler)

        //custom adapter, nnt dibuatkan constructor nnti akan di buat contrut di custom adpater        var adapter = CustomAdapter(this, dataBuah, dataGambar)
        //buat layout manaager        var liner = LinearLayoutManager(applicationContext)
        //manggil listnya        recylerview.adapter = adapter
        recylerview.layoutManager=liner

    }
}


Hasil Gambar 







Link Donwload Project Disini








NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
NEXT ARTICLE Next Post
PREVIOUS ARTICLE Previous Post
 

Delivered by FeedBurner