看圖可以得出Adapter是一個連接數據和AdapterView(ListView就是一個典型的AdapterView,後面還會學習其他的)的橋樑,通過它能有效地實現數據與AdapterView的分離設置,使AdapterView與數據的綁定更加簡便,修改更加方便。
ArrayAdapter
用來綁定一個數組,支持泛型操作
private String[] names=new String[]{"zhangsan","lisi","wangwu","zhouliu"};
private ListView listView;
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
listView=(ListView)view.findViewById(R.id.listview);
ArrayAdapter<String> adapter=new ArrayAdapter<>(getActivity(),
android.R.layout.simple_list_item_1
,names);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getActivity(), names[position], Toast.LENGTH_SHORT).show();
listener.onNameChange(names[position]);
}
ListView使用SimpleAdapter
很多時候需要在列表中展示一些除了文字以外的東西,比如圖片等。這時候可以使用SimpleAdapter。SimpleAdapter的使用也非常簡單,同時它的功能也非常強大。可以通過它自定義ListView中的item的內容,比如圖片、多選框等。看一個例子,實現一個每一行都有一個ImageView和TextView的ListView。