ListView的使用

来源:互联网 发布:淘宝网饰品店 编辑:程序博客网 时间:2024/06/06 04:28
List接口不能直接实例化
List集合用ArrayList()子类实例化
集合的操作:
list.add(0,"***");//(两个参数)下标插入
list.add("****");//(一个参数)默认排序插入
list.get(0);//获取集合中下标对应的元素;使用用字符串接收
list.clear();//清空
list.contains("飞");//集合中是否包含“飞”这个元素
list.equals("a");//对比是否一样
list.remove(1);//移除
list.subList(1,2);//集合的截取
String[]a = (String[]) list.toArray();//把集合转换为数组
Arrays.asList(a);//数组转换为集合

实现一个列表:
需要ListView ,数据源和适配器
如果没有布局,可以调用系统的布局

创建一个行布局

在配置适配器时,添加上下文,创建的行布局,行布局中的控件,控件中加载的信息。

ArrayAdapter只能指定单一视图,只能修改一项。

如果想给列表的item添加点击事件;



跳转页面,并将对应的值也传过去。

键值对:键名不允许出现重复,但是值可以重复
跳转到第二个页面,在第二个页面设置

SimpleAdapter指定单一视图,可以多个添加
//HashMap 以数组形式存储,方便查找,不容易查找。线程不安全
//HashTable 不连续的存储,空间不固定。容易删除,线程安全
这是一个小mode,先实例化数组

实例化List集合,实例化Map集合,向Map集合中添加键值对
创建数据,在数据中添加数组的信息。

添加适配器。修改多个参数需要用SimpleAdapter这个适配器

代码如下:
public class Main2Activity extends AppCompatActivity {    private ListView listview;    private Map<String, Object> map;    private List<Map<String, Object>> list;    private int[] image = {R.drawable.head1,R.drawable.head2,R.drawable.head3,            R.drawable.head4,R.drawable.head5,R.drawable.head6,R.drawable.head7,            R.drawable.head8,R.drawable.head9,R.drawable.head10,R.drawable.head11,            R.drawable.head12,R.drawable.head13,R.drawable.head14,R.drawable.head15,};    private String[] time = {"昨天", "昨天", "昨天", "昨天", "昨天", "星期三",            "星期三", "星期三", "星期三", "星期三", "星期三", "星期二",            "星期二", "星期二", "星期二", "星期二", "星期二",};    private String[]name = {"q","w","e","r","t",            "y","u","i","o","p","a","s","d","f","g",};    @Override    //HashMap   以数组形式存储,方便查找,不容易查找。线程不安全     protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main2);        //getSupportActionBar();        initView();    }    private void initView() {        listview = (ListView) findViewById(R.id.listView);        list = new ArrayList<>();        for (int i = 0; i < name.length; i++) {               map = new HashMap<>();            map.put("image", image[i]);            map.put("name", name[i]);            map.put("motive", "今天是最后一天课了");            map.put("time", time[i]);            //把当前的Map集合存放到List集合中            list.add(map);        }        //第一个参数:上下文布局        //第二个参数:List集合        //第三个参数:行布局        //第四个参数:数据的来源,即为从Map集合中的简明取值        //第五个参数:数据需要摆放到一个控件上        //注意,第四个参数和第五个参数的顺序要一一对应;        //修改多个参数用的适配器 SimpleAdapter        // 适配器:列表和数据进行绑定        SimpleAdapter adapter = new SimpleAdapter(this, list,                R.layout.item_home, new String[]{"image", "name", "motive", "time"},                new int[]{R.id.imageView, R.id.name, R.id.motive, R.id.time});        listview.setAdapter(adapter);    }}

0 0
原创粉丝点击