ListView控件的基本使用以及适配器的使用
来源:互联网 发布:淘宝联盟数据采集 编辑:程序博客网 时间:2024/06/15 18:51
ListView控件:允许用户通过手指在屏幕上的上下滑动将屏幕外的数据滚动到屏幕内,屏幕上原有的数据滚出屏幕。
在activity_main中创建一个ListView控件:
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
</ListView>
ArrayAdapter适配器:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this , android.R.layout.simple_list_item_1 , data);
根据传入数据的选择合适的类型 本例使用String泛型,
函数中传入的参数分别为 (当前的上下文、ListView子项布局的id、数组对象。)
ListView listView = (ListView) findViewById(R.id.listview); //实例化listview
listView.setAdapter(adapter); //调用ListView的setAdapter()方法将配置器对象adapter传递进去
====================================================================================================================================
水果列表项目:
1.定义一个实体类Fruit 作为ListView的适配器适配类型
public class Fruit {
private String name; //定义了水果的名字
private int imageId; //定义了水果对应图片的资源Id。也即是说根据Id就可以找到对应的图片
public Fruit(String name, int imageId){
this.name=name;
this.imageId=imageId;
}
public String getName() {
return name;
}
public int getImageId() {
return imageId;
}
2.定义一个自定义布局,在layout文件夹下 新建一个fruit_item.xml配置文件
<ImageView
android:id="@+id/fruitiamge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<TextView
android:id="@+id/fruitname"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_gravity="center"
android:layout_marginLeft="10dip"
/>
该布局中定义了两个控件 :
ImageView类型的fruitimage用于显示水果的图片
TextView类型的fruitname用于显示水果的名字
3.创建一个自定义适配器FruitAdapter:
public class FruitAdapter extends ArrayAdapter<Fruit>{ //该适配器继承自ArrayAdapter,将泛型指定为Fruit型,
private int resourceId;
public FruitAdapter(Context context, int textViewResourceId,List<Fruit> objects) { //FruitAdapter适配器中传入了三个参数分别为 上下文、子项布局Id(这里就
是指每一条水果的Id、传入的数据
super(context, textViewResourceId,objects);
resourceId=textViewResourceId;
}
@Override
public View getView(int position,View convertView,ViewGroup parent){ //重写了getView()方法,这个方法每个子项被滚动到屏幕内的时候会被调用
Fruit fruit = (Fruit) getItem(position); //当这个子项被滚入屏幕的时候 首先通过getItem()方法实例化这个fruit数据
View view =LayoutInflater.from(getContext()).inflate(resourceId, null); //使用LayoutInflater来为这个子项加载传入的布局
ImageView fruitImage = (ImageView) view.findViewById(R.id.fruitiamge);//调用FindViewById来实例化ImageView控件
TextView fruitname = (TextView) view.findViewById(R.id.fruitname);//调用FindViewById来实例化TextView控件
fruitImage.setImageResource(fruit.getImageId()); //调用setImageResourceId()方法来显示图片
fruitname.setText(fruit.getName()); //调用setText()方法来显示文字
return view; //返回布局
}
}
4.修改MainActivity:
public class MainActivity extends Activity {
private List<Fruit> FruitList = new ArrayList<Fruit>(); //(1)创建一个列表类型的对象FruitList并将Fruit类中的name和图片Id传入FruitList;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initFruits(); //初始化水果数据
FruitAdapter adapter = new FruitAdapter(MainActivity.this,R.layout.fruit,FruitList);//(2)在onCreat()方法中创建FruitAdapter适配器,将FruitList传入到适配器
ListView listView = (ListView) findViewById(R.id.listview);
listView.setAdapter(adapter); //(3)将adapter传递到listView中,这样就可以显示出滚入屏幕内的子项的图片和文本
listView.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, //使用setOnItemClickListener()来注册一个ListView的监听器,每点击listView
中的 任何一个子项都会调用onItemClick()方法,并且通过position参数判断点击的
是哪一个子项
long id) {
Fruit fruit = FruitList.get(position);
Toast.makeText(MainActivity.this, fruit.getName(), Toast.LENGTH_SHORT).show(); //通过Toast方法将水果的名字显示出来.
}
});
}
private void initFruits() {
.......
}
- ListView控件的基本使用以及适配器的使用
- ArrayAdapter适配器和SimpleAdapter适配器以及ListView的使用
- Android ListView控件的使用(自定义适配器 + ListView + 解决OOM )
- ListView控件以及常用数据适配器Adapter的使用+商品展示案例
- Android基本控件ListView的使用总结
- ListView与适配器的使用
- Listview控件使用SimpleAdapter适配器实现屏幕下滑增加一个item选项以及用到的方法总结
- Adapter适配器的基本使用
- Listview 的基本使用
- listview的基本使用
- ListView控件的使用
- ListView 控件的使用
- ListView控件的使用
- ListView控件的使用
- listview控件的使用。
- ListView控件的使用
- ListView控件的使用
- ListView控件的使用
- linux shell 发送email 邮件
- mkdir与mkdirs
- Pod::Executable pull
- Android开发之Drag&Drop框架实现拖放手势
- jquery的$.extend和$.fn.extend作用及区别
- ListView控件的基本使用以及适配器的使用
- 三点的顺序
- 实现跨资源共享
- jsp页面图片不可用,浏览器输入图片地址可用
- 是否为回文判断,栈的思想
- 黑马程序员Java----多态
- IOS实现自动循环滚动广告--ScrollView的优化和封装
- gpu gem, nvidia纹理阴影实现对比
- selenium IDE扩展 随机数