kotlin

    • LiseView

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言,被称之为 Android 世界的Swift,由 JetBrains 设计开发并开源。
Kotlin 可以编译成Java字节码,也可以编译成 JavaScript,方便在没有 JVM 的设备上运行。
在Google I/O 2017中,Google 宣布 Kotlin 成为 Android 官方开发语言。

kotlin中使用接近于Java的方式(内置类型)来表示数字,但是又不完全相同,
比如没有隐式转换!Kotlin中数字相关的内置类型如下:
需要注意几点:
● 1.没有自动向上转型,比如Int转Long,需要自己调toXxx方法转
● 2.Long类型结尾必须为大写的L,不能为小写,比如1024L
● 3.字符Char不是Number,用单引号来声明,比如’c’,不能像Java一样直接拿来当数字使,
如果你想把Char的值给Int,需要调toInt()方法
● 4.Boolean的值为true或false
● 5.Kotlin不支持8进制,十六进制0x开头,二进制0b开头k
● 6.位运算符,Java中的与或运算符用:|和&,kotlin中使用or和and关键字来替代
其他运算符也有分别的关键字替代:shl(有符号左移),shr(有符号右移),ushr(无符号右移)

LiseView


布局

    

BaseAdapter

class MyBaseAdapter (var content:Context , var list:ArrayList): BaseAdapter() {override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View {    var viewHolder:ViewHolder?    var view:View?    if (convertView==null){        viewHolder=ViewHolder()        view = View.inflate(content,R.layout.name1,null)        viewHolder.title=view.findViewById(R.id.t1)        viewHolder.foods=view.findViewById(R.id.t2)        viewHolder.imag=view.findViewById(R.id.iv1)        view.tag = viewHolder    }else{        view = convertView        viewHolder = view.tag as ViewHolder    }    val get = list.get(position)    viewHolder.title?.text = get.title    viewHolder.foods?.text = get.foods    Glide.with(content).load(get.pic).apply(RequestOptions.circleCropTransform()).into(viewHolder.imag)    return view!!}inner class ViewHolder{    var title:TextView? = null    var foods:TextView? = null    var imag:ImageView? = null}override fun getItem(position: Int): Any {    return list.get(position)}override fun getItemId(position: Int): Long {   return position.toLong()}override fun getCount(): Int {    return list.size}}

自定义类

class MyFood  {    var title:String? =null    var foods:String? =null    var pic:String? = nullconstructor(title: String?, foods: String?, pic: String?) {    this.title = title    this.foods = foods    this.pic = pic}override fun toString(): String {    return "MyFood(title=$title, foods=$foods, pic=$pic)"}}

Activity

//*实现接口XListView*    class MainActivity : AppCompatActivity(),XListView.IXListViewListener{override fun onRefresh() {    list.clear()    page=1    Thread(Runnable {        val readText = URL("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=$page").readText()        val jsonObject = JSONObject(readText)        val jsonArray = jsonObject.getJSONArray("data")        for (i in 0..jsonArray.length()-1 step 1){            val jsonObject1 = jsonArray.getJSONObject(i)            val title = jsonObject1.getString("title")            val food_str = jsonObject1.getString("food_str")            val pic = jsonObject1.getString("pic")            list.add(MyFood(title,food_str,pic))        }    }).start()    myBaseAdapter = MyBaseAdapter(this, list)    mylist.adapter = myBaseAdapter    myBaseAdapter!!.notifyDataSetChanged()    load()}override fun onLoadMore() {    page+=1    Thread(Runnable {        val readText = URL("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=10&page=$page").readText()        val jsonObject = JSONObject(readText)        val jsonArray = jsonObject.getJSONArray("data")        for (i in 0..jsonArray.length()-1 step 1){            val jsonObject1 = jsonArray.getJSONObject(i)            val title = jsonObject1.getString("title")            val food_str = jsonObject1.getString("food_str")            val pic = jsonObject1.getString("pic")            list.add(MyFood(title,food_str,pic))        }    }).start()    load()} fun load(){    mylist.stopLoadMore()     mylist.stopRefresh()}var list:ArrayList = ArrayList()var page:Int = 1var myBaseAdapter:MyBaseAdapter? =nulloverride fun onCreate(savedInstanceState: Bundle?) {    super.onCreate(savedInstanceState)    setContentView(R.layout.activity_main)        Thread(Runnable {            val readText = URL("http://www.qubaobei.com/ios/cf/dish_list.php?stage_id=1&limit=20&page=$page").readText()            val jsonObject = JSONObject(readText)            val jsonArray = jsonObject.getJSONArray("data")            for (i in 0..jsonArray.length()-1 step 1){                val jsonObject1 = jsonArray.getJSONObject(i)                val title = jsonObject1.getString("title")                val food_str = jsonObject1.getString("food_str")                val pic = jsonObject1.getString("pic")                list.add(MyFood(title,food_str,pic))            }            myBaseAdapter!!.notifyDataSetChanged()        }).start()    myBaseAdapter = MyBaseAdapter(this, list)    mylist.adapter = myBaseAdapter    mylist.setPullLoadEnable(true)    mylist.setPullRefreshEnable(true)    mylist.setXListViewListener(this)}}

更多相关文章

  1. Android中Tab类型主界面大总结一共5种方式
  2. 定义各种事物的类型
  3. android kotlin 基础二
  4. Android后台任务(HandlerThread、AsyncTask、IntentService)
  5. Ubuntu下Android(安卓)JNI初步学习之——搭建相关环境和测试Demo
  6. Andriod EditText 属性学习
  7. TensorFlow模型移植Android识别手写数字(MNIST)
  8. Android(安卓)EditText限制输入数字和字母
  9. SparseArray详解,我说SparseArray,你说要!

随机推荐

  1. 安装Android(安卓)studio 时候显示:SDK to
  2. Android(安卓)Bundle类
  3. Android单元测试总结
  4. 当scroll时改变item的背景
  5. 深入浅出Android之学习笔记
  6. Android(安卓)Studio常见布局报错及解决
  7. eclipse中android的安装
  8. activity页面切换效果
  9. Android——ViewGroup的一个用法实例
  10. android]Android(安卓)线程优先级修改