学习android开发的一些笔记

 

 

 

 

一:UI开发

  • 由于我们使用了android:layout_weight属性,此时控件的宽度就不由android:layout_width来决定了,这里指定成0dp是一种比较规范的写法。
    android:orientation="horizontal">
    
    
        <EditText
            android:id="@+id/inputMessage"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:hint="Type something"
            android:maxLines="2"/>
    
        <Button
            android:id="@+id/send"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="0.5"
            android:text="send" />

    所以inputMessage和send在水平方向上以1:0.5比例划分。

  •  android:layout_margin:本元素离上下左右间的距离

    android:layout_marginStart:本元素离开始的位置的距离

    android:layout_marginEnd:本元素离结束位置的距离

  • xml中以layout_开头的属性都属于布局参数,与其他属性不同的是,部件的布局参数是给它爸爸——父部件做指示的,告诉父部件如何安排自己, 例如layout_width

 

 

 二:fragment

  • fragment通过继承自 Fragment 的类来控制布局,在自己定义的fragment类中,要加载想要显现的布局layout.
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
    
        <fragment
            android:id="@+id/leftFrag"
            android:name="com.example.fragmenttest.LeftFragment"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent" />
    
        <FrameLayout
            android:id="@+id/rightLayout"
            android:layout_width="0dp"
            android:layout_weight="1"
            android:layout_height="match_parent"
        </FrameLayout>
    
    </LinearLayout>

    在上面的代码中,标签为fragment的要通过android:name指定默认的fragment类来加载类中加载的布局layout.下面的frameLayout则会通过动态指定的方式添加。

  • fragemnt实体类加载自己选定的layout.xml,然后在activity中加载自己选定的fragment来把fragment的layout.xml放在antivity.xml中的指定位置上(动态加载)

 

三:广播

  • 如果有一个动态注册的广播接收器和一个静态注册的广播接收器可以同时接受一个广播,则有序广播会先被动态注册的接受,除非静态注册的写了优先级(大于0就可以先收到,不能等于0)

 

四:SQLite数据库存储

db.execSQL(SQL语句)//对数据库执行SQL语句,创建表和废弃表时常用

//添加数据
val db = dbHelper.writableDatabase
db.insert(表名, null, ContentValues实例)

//更新数据
db.update(表名, ContentValues实例, 用或者不用?占位符的类似SQL语句的where部分, arrayOf(前一个参数的占位符内容))
db.update("Book", values, "name = ?", arrayOf("白说", “简爱”))//修改name属性为白说或者简爱的行

//删除数据
db.delete(表名, 用或者不用?占位符的类似SQL语句的where部分, arrayOf(前一个参数的占位符内容))
db.delete("Book", "price > ?", arrayOf("100"))//价钱大于100块的书都会被删除,删除一个元组,即一行

 

posted @ 2021-04-28 22:03  ou尼酱~~~  阅读(129)  评论(0)    收藏  举报