1. 程式人生 > >安卓學習(初)第三章(3)(《第一行程式碼》)

安卓學習(初)第三章(3)(《第一行程式碼》)

一、建立自定義標題欄

1、以線性佈局編寫程式碼。除了之前學過的設定控制元件對齊方式控制元件大小還有控制元件地址命名外,android:text設定控制元件文字內容,android:textColor設定控制元件底色,android:background設定背景,android:layout_marginLeft="5dp"等設定對應方向的偏移距離,android:textSize設定文字字型大小。

2、為了不需要每一個活動都要重新編寫標題欄,可以在其他佈局標籤最外層上加上程式碼<include layout="@layout/title">(其中@layout/title是所需要呼叫的佈局的地址)。

3、此外,因為安卓開發中系統是自帶標題欄的,我們要在主活動中將系統自帶的標題欄隱藏掉,程式碼如下:

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        android.support.v7.app.ActionBar actionbar=getSupportActionBar();     //獲得例項
        if (actionbar!=null){
            actionbar.hide();                                                 //隱藏
        }
    }
}

二、建立自定義控制元件(以下為示例,佈局名稱等皆是自定義命名)

1、新建一個Javaclass命名為TitleLayout繼承LinearLayout:

public class TitleLayout extends LinearLayout {
    public TitleLayout(Context context, AttributeSet attrs) {
        super(context,attrs);
        LayoutInflater.from(context).inflate(R.layout.title,this);
    }
}

from(context)構建出一個LayoutInflater物件,inflate接受兩個引數,第一個是要載入的佈局檔案,第二個引數是給載入好的佈局新增一個父佈局。上面的程式碼簡單的說就是建立了一個控制元件,把title的佈局載入進TitleLayout。

2、在main_activity 的佈局檔案加新增上面建立的控制元件,即新增<com.example.uicustomviews.TitleLayout>這個標籤的控制元件內容。新增自定義控制元件和新增普通控制元件的方式基本相同,只是新增自定義控制元件是必須指明控制元件完整的類名,不能省略。

3、然後在上面的Javaclass裡面註冊各個點選事件或者其他觸發事件,那麼,以後只要在佈局中引用了該自定義控制元件,在包含該佈局的所有活動中就會自動新增該自定義控制元件包含的所有事件,不需要重複地一個一個活動地寫一樣的程式碼。

三、ListView控制元件

1、簡單用法介紹

<ListView
    android:id="@+id/list_view"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

在layout檔案註冊和其他控制元件類似

public class MainActivity extends AppCompatActivity {
    private String[]data={"apple","banana","orange",
            "pear","grape","pineapple","cherry","mango"};     //ListView是用來展示大量資料的,我們在這提供資料
    @Override
    protected void onCreate(Bundle savedInstanceState) {      
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ArrayAdapter<String> adapter=new ArrayAdapter<String>(   //開始構造介面卡(藉助介面卡完成資料傳給ListView)
                MainActivity.this,android.R.layout.simple_list_item_1,data);
        ListView listView=(ListView) findViewById(R.id.list_view);  //構造listview例項
        listView.setAdapter(adapter);                               //將構建好 的介面卡物件傳遞進去
    }
}

注意使用了android.R.layout.simple_list_item_1作為ListView的子項佈局的id,這是一個Android內建的佈局檔案,裡面只有一個TextView,簡單地顯示一段文字。

2、定製ListView介面和自定義介面卡見《第一行程式碼(第二版)》P115—P118較為詳細。(該內容無法概括,或者本人能力不足以概括該節內容)。