Activity从入门到放弃

  1. 基本控件
    Button
    注意到显示的text均为大写,如果要保留原始文字内容,需在XML上添加:
android:textAllCaps = "false"

/点击事件需要在相应Activity中注册监听器

button.setOnClickListener{
    ...
}

TextView: 显示文本信息
EditText:文本输入框

android:hint = "text"  //提示输入内容
android:maxLines = "n"  //规定行数

ImageView / ProgressBar
图片放在drawable目录下
通过style属性可以设置进度条的形式
AlertDialog
弹出对话框,置顶于所有界面元素之上
setTitle()
setMessage()
setCancelable(false) :Back键不能返回
setPositiveButton/setNegativeButton(“text”){dialog, which->}
确定按钮和取消按钮

  1. 布局
    LinearLayout:线性布局(很常用)
    RelativeLayout:相对布局,控件相对于父布局进行定位的。注意多了一些属性。eg:相对于父布局或其它控件的上下左右。
    FrameLayout:帧布局,最简单,与Fragment相结合
  2. RecyclerView(重点介绍)
    横向布局,网格布局,瀑布流布局
    新增控件需要在build.gradle中添加依赖
    同时在activity_main.xml中需要把完整的包路径写出来

配置适配器:

class FruitAdapter (val fruitList: List<Fruit>) :
RecyclerView.Adapter<FruitAdapter.ViewHolder>(){

    inner class ViewHolder(view: View): RecyclerView.ViewHolder(view){
        val fruitImage :ImageView = view.findViewById(R.id.fruitImage)
        val fruitName :TextView = view.findViewById(R.id.fruitName)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view= LayoutInflater.from(parent.context)
            .inflate(R.layout.fruit_item, parent, false)
        val viewHolder = ViewHolder(view)
        //最外层布局
        viewHolder.itemView.setOnClickListener {
            val position = viewHolder.adapterPosition
            val fruit = fruitList[position]
            Toast.makeText(parent.context,"You clicked view ${fruit.name}",Toast.LENGTH_SHORT).show()
        }
        //ImageView
        viewHolder.fruitImage.setOnClickListener {
            val position = viewHolder.adapterPosition
            val fruit = fruitList[position]
            Toast.makeText(parent.context,"you clicked image ${fruit.name}", Toast.LENGTH_SHORT).show()
        }
        return viewHolder
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val fruit = fruitList[position]
        holder.fruitImage.setImageResource(fruit.ImageId)
        holder.fruitName.text = fruit.name
    }

    override fun getItemCount() = fruitList.size

}

继承自RecyclerView.Adapter必须重写
onCreateViewHolder():创建ViewHolder实例,将布局加载进来,传入构造函数中
onBindViewHolder():对RecyclerView子项的数据进行赋值,当子项滚动到屏幕内时就会执行
getItemCount():返回数据源的长度即可
❗相应Activity中需要layoutManager来加载布局

val layoutManager = StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL)
        recyclerView.layoutManager = layoutManager
        val adapter = FruitAdapter(fruitList)
        recyclerView.adapter = adapter

Fragment了解了一下平板手机兼容的新闻应用,就不做归纳了(心累~~)
下次就要开始学习第二个组件:
BroadcastReceiver!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值