kotlin
16lz
2021-01-26
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)}}
更多相关文章
- Android中Tab类型主界面大总结一共5种方式
- 定义各种事物的类型
- android kotlin 基础二
- Android后台任务(HandlerThread、AsyncTask、IntentService)
- Ubuntu下Android(安卓)JNI初步学习之——搭建相关环境和测试Demo
- Andriod EditText 属性学习
- TensorFlow模型移植Android识别手写数字(MNIST)
- Android(安卓)EditText限制输入数字和字母
- SparseArray详解,我说SparseArray,你说要!