Android学习记录,第二周

(一)Android常用布局属性及说明

1、线性布局Linearlayout

线性布局如同其名,在制定的空间内以垂直或水平方向排列内部空间,控制其水平或垂直的属性 android:orientation ,其取值为vertical(垂直)或horizontal(水平)。
线性布局中,当水平布局时,其控件的水平方向无法操作,如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" > <TextView  //此条设置无效,因水平方向已固定,只能操作垂直方向 android:layout_gravity="center_horizontal" android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/text_item" android:gravity="center" android:textSize="35sp" android:text="test" </LearLayout>

2、相对布局RelativeLayout

可以灵活的将控件摆放至相应位置,其控件常用属性有:
- layout_alignParentBottom
- layout_alignParentLeft
- layout_alignParentRight
- layout_alignParentTop
以上四个属性与父控件上/下/左/右对齐,其取值为True或False
- alignLeft
- alignRight
- alignBottom
- alignTop
以上四个属性与目标控件上/下/左/右对齐。
- toLeftOf
- toRightOf
- below
- above
以上四个属性使控件位于目标空间上/下/左/右侧
以下为本人写的一个简单的拨号界面,供新人参考

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout  xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/main_relativelayout" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.ztcallphone.MainActivity">
    <EditText  android:id="@+id/phonenumber_et" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Input Phone Number" android:padding="10dp" android:textSize="25sp" />
    <LinearLayout  android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/phonenumber_et" android:orientation="vertical">
        <ListView  android:id="@+id/contacts_lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1" />
        <RelativeLayout  android:id="@+id/button_relativelayout" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="2" android:padding="10dp">
            <LinearLayout  android:id="@+id/linearlayout_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:orientation="horizontal">
                <Button  android:id="@+id/unvisiable_bt" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="unvisiable" />
                <Button  android:id="@+id/call_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="3" android:text="Call" android:textSize="35sp" />
                <Button  android:id="@+id/delete_bt" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="delete" />
            </LinearLayout>
            <LinearLayout  android:id="@+id/linearlayout_3" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/linearlayout_button">
                <Button  android:id="@+id/phone7_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="7" android:textSize="30sp" />
                <Button  android:id="@+id/phone8_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="8" android:textSize="30sp" />
                <Button  android:id="@+id/phone9_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="9" android:textSize="30sp" />
            </LinearLayout>
            <LinearLayout  android:id="@+id/linearlayout_2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/linearlayout_3">
                <Button  android:id="@+id/phone4_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="4" android:textSize="30sp" />
                <Button  android:id="@+id/phone5_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="5" android:textSize="30sp" />
                <Button  android:id="@+id/phone6_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="6" android:textSize="30sp" />
            </LinearLayout>
            <LinearLayout  android:id="@+id/linearlayout_1" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_above="@id/linearlayout_2" android:orientation="horizontal">
                <Button  android:id="@+id/phone1_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="1" android:textSize="30sp" />
                <Button  android:id="@+id/phone2_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="2" android:textSize="30sp" />
                <Button  android:id="@+id/phone3_bt" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="3" android:textSize="30sp" />
            </LinearLayout>
        </RelativeLayout>
    </LinearLayout>
</RelativeLayout>

Android学习记录,第二周_第1张图片

(二)最常用也是最难的空间-ListView

1、ListView使用了类似于MVC结构的形式:

ListVIew:用于显示数据,类似于MVC模式中的试图View,它提供了与用户交互的界面。
Adapter:类似于MVC模式中的控制器Controller,其提供了视图与数据之间的交互。
List(数据):数据类似于MVC模式中的Model。

2、ListView的使用

  1. 创建一个ListView
  2. 创建一个Adapter适配器
  3. 用ListView.setAdapter来将ListView与Adapter相互绑定

3、最常用的适配器BaseAdapter

BaseAdapter实现了Adapter接口,其类中共四个抽象方法需要我们重写:
public int getCount();
此方法需返回ListView的总条数。
public Object getItem(int position);
此方法需返回ListView中的指定条目。
public long getItemId(int position);
此方法需返回ListView中的指定条目的ID。
public View getView(int position, View convertView, ViewGroup parent);
最重要的方法,每当ListView中的一个条目显示在屏幕上时(即可以与用户进行交互),系统自动调用此方法。填充条目时常用的方法有:

LayoutInflater layoutInflate=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView =  layoutInflater.inflate(R.layout.list_item,null);

或者直接

convertView =  LayoutInflater.from(getContext()).inflate(R.layout.list_item,null);

这里的convertView就是将要显示在屏幕上每个子项的View。

你可能感兴趣的:(Android学习记录,第二周)