这篇文章主要为大家详细介绍了机器人控件列表视图的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
机器人控件列表视图使用方法介绍,具体如下
一、ListView的简单用法
首先新建一个ListViewTest项目,并让安卓工作室自动创建好活动。然后修改activity_main.xml中的代码,如下:
?可扩展标记语言版本='1.0 '编码='utf-8 '?
线性布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '
Android:layout _ width=' match _ parent '
Android:layout _ height=' match _ parent '
列表视图
android:id='@ id/list_view '
Android:layout _ width=' match _ parent '
Android:layout _ height=' match _ parent '
/列表视图
/线性布局
接下来修改主要活动中的代码:
公共类主要活动扩展AppCompatActivity {
私有字符串[]数据={ '苹果','香蕉','桔子','西瓜','梨','葡萄','菠萝','草莓','樱桃','芒果','苹果','香蕉','桔子','西瓜','梨','葡萄','菠萝','草莓','樱桃' };
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
ArrayAdapterString adapter=new ArrayAdapterString(主活动。这个,安卓.R.layout.simple_list_item_1,data);
ListView ListView=(ListView)findViewById(r . id。list _ view);
listview.setAdapter(适配器);
}
}
数组中的数据无法直接传递给列表视图,需要借助适配器来实现。
ArrayAdapter的构造函数中依次传入当前上下文,列表视图子项布局的id,以及要适配的数据;
调用列表视图的setAdapter()方法,将构建好的适配器对象传递进去,这样列表视图和数据之间的关联就建立完成。
运行程序,可以通过滚动的方式来查看屏幕外的数据。
二、定制ListView的界面
首先准备一组图片,分别对应上面提供的每一种水果(注意图片大小尽量一致),放在可拉的目录下,注意命名不能出现大写字母(比如苹果不合法);
在管理员. listviewtest下新建Java。语言(一种计算机语言,尤用于创建网站)文件,定义一个实体类水果,作为列表视图适配器的适配类型。
公共类水果{
私有字符串名称;
私有int imageId
public Fruit(String name,int imageId){
this.name=name
this.imageId=imageId
}
公共字符串getName(){
返回名称;
}
public int getImageId(){
返回imageId
}
}
然后为列表视图的子项指定一个自定义布局,在布局目录下新建水果_项目。xml。
?可扩展标记语言版本='1.0 '编码='utf-8 '?
线性布局xmlns:Android=' http://模式。安卓。' com/apk/RES/Android '
Android:layout _ width=' match _ parent '
Android:layout _ height=' wrap _ content '
图像视图
android:id='@ id/fruit_image '
Android:layout _ width=' wrap _ content '
Android:layout _ height=' wrap _ content '/
文本视图
android:id='@ id/fruit_name '
Android:layout _ width=' wrap _ content '
Android:layout _ height=' wrap _ content '
Android:layout _ gravity=' center _ vertical '
Android:layout _ margin left=' 10dp '
/
/线性布局
接下来创建一个自定义的适配器,同样在管理员. listviewtest下新建Java。语言(一种计算机语言,尤用于创建网站)文件,重写了父类的一组构造函数,用于将上下文、列表视图子项布局的身份证明(识别)和数据都传递进来,命名为水果适配器,代码如下:
公共类水果适配器扩展ArrayAdapterFruit {
私有int resourceId
公共水果适配器(上下文Context,int textViewResourceId,ListFruit对象){
super(context,textViewResourceId,objects);
resourceId=textViewResourceId
}
@覆盖
公共视图getView(int position,View convertView,ViewGroup parent){
水果水果=getItem(位置);//获取当前项的实例
view view=layoutinflater。from(get context()).inflate(resourceId,parent,false);
ImageView水果图像=(ImageView)视图。findviewbyid(r . id。水果_图片);
TextView果名=(TextView)视图。findviewbyid(r . id。水果_名称);
水果形象。设置图像资源(水果。getimageid());
果名。settext(水果。getname());
返回视图;
}
}
下面修改主要活动中的代码:
包com。举例。管理员。listview测试;
导入安卓。支持。V7。app。app compat活动;
导入安卓。OS。捆绑;
导入安卓。小部件。数组适配器;
导入安卓。小部件。列表视图;
导入Java。util。ArrayList
导入Java。util。列表;
公共类主要活动扩展AppCompatActivity {
私有列表水果水果列表=new ArrayList();
//私有字符串[]数据={ '苹果','香蕉','橙子','西瓜','梨','葡萄','菠萝','草莓','樱桃','芒果','苹果','香蕉','橙子','西瓜','梨','葡萄','菠萝','草莓','樱桃','芒果' };
@覆盖
受保护的void onCreate(Bundle saved instancestate){
超级棒。oncreate(savedInstanceState);
setContentView(r . layout。活动_主);
init水果();//初始化水果数据
水果适配器适配器=新水果适配器(主要活动。this,R.layout.fruit_item,水果清单);
//ArrayAdapterString adapter=new ArrayAdapterString(main activity。这个,安卓.R.layout.simple_list_item_1,data);
ListView ListView=(ListView)findViewById(r . id。list _ view);
listview.setAdapter(适配器);
}
私有void initFruits(){
for(int I=0;I2;i ){
水果苹果=新水果('苹果可拉伸的。苹果);
fruitList.add(苹果);
水果橙=新水果(“橙色”,r . drawable。橙色);
fruitList.add(橙色);
水果香蕉=新水果('香蕉可绘制的。香蕉);
fruitList.add(香蕉);
水果waterlenmo=新水果(‘水之精灵’,r . draw able。水柠檬);
水果清单。添加(水lenmo);
水果梨=新水果('梨可拉伸的。梨);
水果清单。加(梨);
水果葡萄=新水果('葡萄R.drawable。葡萄);
fruitList.add(葡萄);
水果菠萝=新水果('菠萝R.drawable。菠萝);
fruitList.add(菠萝);
水果草莓=新水果("草莓“,r . draw able。吸管);
fruitList.add(草莓);
水果樱桃=新水果(“樱桃”,r . draw able。樱桃);
fruitList.add(樱桃);
水果芒果=新水果('芒果可拉伸的。芒果);
fruitList.add(芒果);
}
}
}
运行程序后,效果图如下(图片大小后来才意识到,懒得换了……):
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。