天天看點

gridview 擴充卡_Android UI 基礎知識 Adapter擴充卡

1、MVC模式

在開始學習Adapter之前我們要來了解下這個MVC模式概念:舉個例子:大型的商業程式通常由多人一同開發完成,比如有人負責操作接口的規劃與設計, 有人負責程式代碼的編寫如果要能夠做到程式項目的分工就必須在程式的結構上做适合的安排 ,如果,接口設計與修改都涉及到程式代碼的改變的話,那麼兩者的分工就會造成執行上的困難 良好的程式架構師将整個程式項目劃分為如圖的三個部分:

gridview 擴充卡_Android UI 基礎知識 Adapter擴充卡

1.1 關系圖解析

  • Model:通常可以了解為資料,負責執行程式的核心運算與判斷邏輯,通過 view 獲得使用者輸入的資料,然後根據從資料庫查詢相關的資訊,最後進行運算和判斷,再将得到的結果交給 view 來顯示
  • view:使用者的操作接口,說白了就是 GUI,應該使用哪種接口元件,元件間的排列位置與順序都需要設計
  • Controller:控制器,作為 model 與 view 之間的樞紐,負責控制程式的執行流程以及對象之間的一個互動
  • Model(資料源)---> Controller(Adaper)---> View(AdapterView)

2、AdapterView簡介

  • AdapterView即Adapter(擴充卡)控件,其内容通常是一個包含多項相同格式資源的清單,每次隻顯示其中的一項。這個存放Adapter控件内容的清單,在Android被稱為AdapterView(擴充卡View)使用的時候一般都會先給擴充卡填充内容,然後将已經設定好内容的擴充卡(Adapter)設定到AdapterView上。
  • 常用的AdapterView包含:ListView(清單)、Spinner(下拉清單)、GridView(網格網)、RecycleView

3、Adapter簡介

gridview 擴充卡_Android UI 基礎知識 Adapter擴充卡
  • BaseAdapter:抽象類,實際開發中通常會繼承這個類并且重寫相關方法,用得最多的一個Adapter!
  • ArrayAdapter:支援泛型操作,最簡單的一個Adapter,隻能展現一行文字。
  • SimpleAdapter:同樣具有良好擴充性的一個Adapter,可以自定義多種效果!
  • SimpleCursorAdapter:用于顯示簡單文本類型的ListView,一般在資料庫那裡會用到,不過有點過時, 不推薦使用!

4、簡單使用

  • adapter_layout.xml
<?xml version="1.0" encoding="utf-8"?><ListView xmlns:android="http://schemas.android.com/apk/res/android"          android:id="@+id/listview"          android:layout_width="match_parent"          android:layout_height="match_parent"          android:orientation="vertical">ListView>
           
  • AdapterActivity.java
public class AdapterActivity extends AppCompatActivity {    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.adapter_layout);        // AdapterView - V        ListView listView = (ListView)findViewById(R.id.listview);        // 資料源 - M        String[] strs = {"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"};        // 控制器 - C        ArrayAdapter<String> adapter = new ArrayAdapter<String>(          this,android.R.layout.simple_expandable_list_item_1,strs        );        // 為ListView設定Adapter擴充卡        listView.setAdapter(adapter);    }}