Skip to content

gokul42252/KotlinListview

Repository files navigation

KotlinListview

http://thoughtnerds.com/listview-using-kotlin-android-tutorial/

Listview is very needy for all  when developing android apps. This Shows how to Create Listview using Kotlin Android Tutorial. First need to create a android application including kotlin support.
  1. Create layout_item.xml contains AppCompatTextView widget with id li_list_textview.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent">
<android.support.v7.widget.AppCompatTextView
    android:layout_width="match_parent"
    android:id="@+id/li_list_textview"
    style="@style/Base.TextAppearance.AppCompat.Subhead"
    android:layout_height="wrap_content" />
</android.support.constraint.ConstraintLayout>

2)Create a ListviewAdapter.kt as follows, This adapter inflate views from layout_item.xml

package com.cretlabs.kotlinlistview

import android.content.Context
import android.support.v7.widget.AppCompatTextView
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter

/**
 * Created by Gokul on 2/11/2018.
 */
class ListViewAdapter(context: Context) : BaseAdapter() {
    internal var sList = arrayOf("Apple", "Orange", "Grape", "Pine Apple", "Jack fruit", "Strawberry", "Guava"
    )
    private val mInflator: LayoutInflater = LayoutInflater.from(context)

    override fun getCount(): Int {
        return sList.size
    }

    override fun getItem(position: Int): Any {
        return sList[position]
    }

    override fun getItemId(position: Int): Long {
        return position.toLong()
    }

    override fun getView(position: Int, convertView: View?, parent: ViewGroup): View? {
        val view: View?
        val vh: ViewHolder
        if (convertView == null) {
            view = this.mInflator.inflate(R.layout.layout_item, parent, false)
            vh = ViewHolder(view)
            view.tag = vh
        } else {
            view = convertView
            vh = view.tag as ViewHolder
        }

        vh.label.text = sList[position]
        return view
    }
}

/**
 * View holder
 */
private class ViewHolder(row: View?) {
    public val label: AppCompatTextView
    init {
        this.label = row?.findViewById<AppCompatTextView>(R.id.li_list_textview)!!
    }
}

3)Create actuvuty_main.xml as follows, Layout contains android Listview widget with id  list

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.cretlabs.kotlinlistview.MainActivity">

    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</android.support.constraint.ConstraintLayout>

4)Create MainActivity.kt  to initialize Listview widget and setting adapter to listview

package com.cretlabs.kotlinlistview

import android.os.Bundle
import android.support.v7.app.AppCompatActivity
import android.widget.ListView

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedState: Bundle?) {
        super.onCreate(savedState)
        setContentView(R.layout.activity_main)
        val listView = findViewById<ListView>(R.id.list)
        listView.adapter = ListViewAdapter(this)
    }
}

Its all done like this you can create simple list view using kotlin in android.

Download full source code From Github

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages