BaseAdapter之ArrayAdapter
ArrayAdapter是BaseAdapter的一個具體實現(xiàn)椿肩,可直接使用泛型進行構(gòu)造宿饱,能像List一樣直接對Adapter進行增刪操作。也是最簡單的一個了
ArrayAdapter使用示例:
運行效果圖:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//要顯示的數(shù)據(jù)
String[] strs = {"基神","B神","翔神","曹神","J神"};
//創(chuàng)建ArrayAdapter
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this,android.R.layout.simple_expandable_list_item_1,strs);
//獲取ListView對象,通過調(diào)用setAdapter方法為ListView設(shè)置Adapter設(shè)置適配器
ListView list_test = (ListView) findViewById(R.id.list_test);
list_test.setAdapter(adapter);
}
}
一些相關(guān)的東西:
1.除了通過數(shù)組外,我們還可以寫到一個數(shù)組資源文件中:
比如:在res\valuse下創(chuàng)建一個數(shù)組資源的xml文件:arrays.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="myarray">
<item>語文</item>
<item>數(shù)學(xué)</item>
<item>英語</item>
</string-array>
</resources>
接著布局的listview屬性設(shè)置下這個列表項:
<ListView
android:id="@id/list_test"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:entries="@array/myarray"/>
就可以了~
當(dāng)然我們也可以在Java代碼中這樣寫:
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.myarray,android.R.layout.simple_list_item_multiple_choice );
同樣也是可以的!
2.一開始也說了這個ArrayAdapter支持泛型缘揪,那么集合必不可少啦,比如义桂,這樣寫:
List<String> data = new ArrayList<String>();
data.add("基神");
data.add("B神")找筝;
ArrayAdapter<String> adapter = new ArrayAdapter<String>
(this,android.R.layout.simple_expandable_list_item_1,data);
3.我們看到了在實例化ArrayAdapter的第二個參數(shù): android.R.layout.simple_expandable_list_item_1 其實這些是系統(tǒng)給我們提供好的一些ListView模板,有下面幾種:
simple_list_item_1 : 單獨一行的文本框
simple_list_item_2 : 兩個文本框組成
simple_list_item_checked : 每項都是由一個已選中的列表項
simple_list_item_multiple_choice : 都帶有一個復(fù)選框
simple_list_item_single_choice : 都帶有一個單選鈕