简单版:1.在activity_main中创建一个<ListView>
2.设置一个数组放置名字
3.在MainActivity中新建一个ArrayAdapter类 adapter,泛型指明为String类型,其中的 参数为 当前页(MainActivity01.this),安卓自带的list布局 (R.layout.support_simple_spinner_dropdown_item)数组(data)
4.用ListView将activity_main中的ListView取出来
5.用listview调用setAdapter ,将(adapter)放进去
自定义版:1.创建一个实体类,(Fruit)具有构造方法和getter方法
2.在layout布局中新建fruit_item.xml文件 ,修改为LinearLayout布局在其中放置
<ImageView> ,<TextView>
其中前者是用来放置图片的,后者放置文字。
3.新建一个java文件继承ArrayAdapter指定泛型Fruit,
1.我们重写一个构造方法,定义一个int类型的resourceID,将super中的resource传进来,这一项是 用来放置布局的id的。
2. 然后重写getview方法,先用一个getitem得到当前Fruit的实例
3.新建一个view 然后用LayoutInflater.from(getContext) 加载布局管理器,调用方法LayoutInflater.from(getContext).inflater(resourceID,parent,false) 其中resourceID是布局 parent是指给该布局的外部再嵌套一层父布局,如果不需要就直接传null,fasle表示只让我们在父布局中声明的layout属性生效,但不会为这个view添加父布局,因为一旦有了父布局,他就不能再添加到ListView中了(我也不懂。。。来自于第一行代码)
(那么今天就从LayoutInflater开始讲起吧。相信接触Android久一点的朋友对于LayoutInflater一定不会陌生,都会知道它主要是用于加载布局的。而刚接触Android的朋友可能对LayoutInflater不怎么熟悉,因为加载布局的任务通常都是在Activity中调用setContentView()方法来完成的。其实setContentView()方法的内部也是使用LayoutInflater来加载布局的)
4.建立 ImageView fruitImage 来findViewByID到布局fruit_item.xml中的ImageView
建立TextView fruitName 来findViewByID到布局fruit_item.xml中的TextView
fruitImage调用方法setImageResource (fruit.getImageid);
fruitName调用方法setText(fruit.getText);
最后return view;
4.返回MainActivity中 加入一个list 泛型指定Fruit
写一个取得数据的方法
我这里写的是 initFruits(建立一个例子,将名字和图片传进去,list添加例子)
实例化FruitAdapter 参数(当前页面,布局list_view, list )
结束!