ArrayAdapter和SimpleAdapter详解

来源:互联网 发布:卸载软件找不到程序 编辑:程序博客网 时间:2024/06/06 03:53

1、BaseActivity是最常用的控制器,但如果模型层只有一种类型的数据,那么用ArrayAdater将会大大减少复杂程度,ArrayAdapter只能处理一种数据

相对简单;

布局文件:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent" android:layout_height="wrap_content">    <ImageView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/image"        android:src="@android:drawable/btn_star"/>    <TextView        android:id="@+id/name"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textSize="22dp"        android:layout_gravity="center_vertical"/></LinearLayout>

代码:

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView listView= (ListView) findViewById(R.id.lv_listView);        String str[]=new String[]{"小叶","小玲","小黄"};        listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,R.layout.layout_text,R.id.name,str));    }}
2、SimpleAdapter可以处理多种数据,可以处理字符串,也可以处理不同的图片,通过Map添加数据,可添加多种不同的数据做数据
public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView listView= (ListView) findViewById(R.id.lv_listView);        String str[]=new String[]{"小叶","小玲","小黄"};        List<Map<String,Object>> mapList=new ArrayList<Map<String,Object>>();        Map<String,Object> map1= new HashMap<>();        map1.put("photo",android.R.drawable.btn_radio);        map1.put("name","小玲");        mapList.add(map1);        Map<String,Object> map2= new HashMap<>();        map2.put("photo",android.R.drawable.btn_star_big_on);        map2.put("name","小智");        mapList.add(map2);        Map<String,Object> map3= new HashMap<>();        map3.put("photo",android.R.drawable.btn_default);        map3.put("name","小明");        mapList.add(map3);        //simpleAdapter的几个参数的意义,查看API文档即可,其中  后两个,第一个指的是  MAP中的key,第二个指key在布局文件中对应的id        listView.setAdapter(new SimpleAdapter(MainActivity.this,mapList,R.layout.layout_text,new String[]{"photo","name"},new int[]{R.id.image,R.id.name}));        //listView.setAdapter(new ArrayAdapter<String>(MainActivity.this,R.layout.layout_text,R.id.name,str));    }}

0 0
原创粉丝点击