kotlin频道涛锅锅的Kotlin

使用kotlin创建一个含有listview的android界面

2015-10-29  本文已影响3609人  Tenny1225

首先创建一个activity_main布局的文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    
   xmlns:tools="http://schemas.android.com/tools" 
   android:layout_width="match_parent"   
   android:layout_height="match_parent"    
   tools:context=".MainActivity">    
      <ListView        
      android:id="@+id/listView"  
      android:layout_width="match_parent" 
       android:layout_height="match_parent" />
</RelativeLayout>

listview 每个item布局文件

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/str"/>
</LinearLayout>

listview适配器

package com.xz.myapplication

import android.content.Context
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import android.widget.TextView
import java.util.*

/**
 * Created by Administrator on 2015/10/29 0029.
 */
class TestAdapter(val list: ArrayList<String>, val context: Context) : BaseAdapter() {
    override fun getCount(): Int {
        return list.size
    }

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View? {
        var holder: TestViewHolder
        var v: View
        if (convertView == null) {
            v = View.inflate(context, R.layout.item, null)
            holder = TestViewHolder(v)
            v.tag = holder
        } else {
            v = convertView
            holder = v.tag as TestViewHolder
        }
        holder.str.text = list[position]
        return v
    }

    override fun getItem(position: Int): Any? {
        return list.get(position)
    }

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

class TestViewHolder(var viewItem: View) {
    var str: TextView = viewItem.findViewById(R.id.str) as TextView
}

创建一个TestActivity.kt的文件

package com.xz.myapplication

import android.app.Activity
import android.os.Bundle
import kotlinx.android.synthetic.activity_main.*
import java.util.*

public class TestActivity: Activity(){
   private var itemList=ArrayList<String>()
   private var adapter :TestAdapter?=null
   override fun onCreate(savedInstanceState: Bundle?) {
       super.onCreate(savedInstanceState)
       setContentView(R.layout.activity_main)
       itemList.getData()
       adapter = TestAdapter(itemList,this)
      /*
         此处listview控件是通过kotlinx.android.synthetic.activity_main.*获得
      */
       listView.adapter = adapter

   }
   fun ArrayList<String>.getData(){
      for(i in 0..20){
          this.add("str:"+i)
      }
   }
}
上一篇下一篇

猜你喜欢

热点阅读