Android:最常用和最难用的控件----ListView
来源:互联网 发布:python 下载全站资源 编辑:程序博客网 时间:2024/05/14 17:48
ListView 绝对可以称得上是Android中最常用的控件之一了 几乎所有的应用程序都会用到它 由于手机屏幕的空间比价有限 能够一次性在屏幕上显示的内容不多,当我们的程序中有大量数据需要展示的时候 就可以借助ListView来实现 ,ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内 同时屏幕上原有的数据则会滚动处屏幕,例如我们每天使用的QQ 查看聊天记录,翻阅微博信息等。
我们通过一个案例来实现定制ListView 界面 这是案例的最终显示效果
首先准备好这些图片 放入 res下的drawable文件夹中
然后定义一个实体类 作为ListView 的适配器的适配类型 新建类Fruit ,Fruit类中的两个字段 name表示水果名字 imageId 表示水果对应图片的资源id
public class Fruit { private String name; private int imageId; public Fruit(String name, int imageId) { this.name = name; this.imageId = imageId; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getImageId() { return imageId; } public void setImageId(int imageId) { this.imageId = imageId; }}
然后需要为ListView的子项指定一个我们自定义的布局 在layout目录习下新建 fruit_item.xml 代码如下
在这个布局中我们定义了一个ImageView用于显示水果的图片 又定义了一个TextView 用于显示水果的名称 并让TextView 在垂直方向上显示居中
<?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:id="@+id/fruit_image" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:id="@+id/fruit_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" android:layout_marginLeft="10dp" /></LinearLayout>
接下来需要创建一个自定义的适配器这个适配器继承自ArrayAdapter 并将泛型指定为Fruit 类 新建类 FruitAdapter 代码如下
package com.example.administrator.databasetest;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ArrayAdapter;import android.widget.ImageView;import android.widget.TextView;import java.util.List;/** * Created by Administrator on 2017/4/13. */public class FruitAdapter extends ArrayAdapter<Fruit> { private int resourceId; public FruitAdapter(Context context, int textViewResourceId, List<Fruit> objects) { super(context, textViewResourceId, objects); resourceId = textViewResourceId; } public View getView(int position,View convertView, ViewGroup parent){ Fruit fruit =getItem(position);//获取当前项的Fruit 实例 View view= LayoutInflater.from(getContext()).inflate(resourceId,parent,false); ImageView fruitImage=(ImageView)view.findViewById(R.id.fruit_image); TextView fruitName=(TextView)view.findViewById(R.id.fruit_name); fruitImage.setImageResource(fruit.getImageId()); fruitName.setText(fruit.getName()); return view; }}
下面修改MainActivety中的代码
package com.example.administrator.databasetest;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private List<Fruit> fruitList=new ArrayList<>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initFruits();//初始化水果数据 FruitAdapter adapter = new FruitAdapter(MainActivity.this, R.layout.fruit_item, fruitList); ListView listView = (ListView) findViewById(R.id.list_view); listView.setAdapter(adapter); } public void initFruits(){ for (int i=0;i<2;i++) { Fruit apple=new Fruit("Apple",R.drawable.apple_pic); fruitList.add(apple); Fruit banana=new Fruit("Banana",R.drawable.banana_pic); fruitList.add(banana); Fruit orange=new Fruit("Orange",R.drawable.orange_pic); fruitList.add(orange); Fruit watermelon=new Fruit("Watermelon",R.drawable.watermelon_pic); fruitList.add(watermelon); Fruit pear=new Fruit("Pear",R.drawable.grape_pic); fruitList.add(pear); Fruit grape=new Fruit("Grape",R.drawable.grape_pic); fruitList.add(grape); Fruit pineapple=new Fruit("Pineapple",R.drawable.pineapple_pic); fruitList.add(pineapple); } }}
0 0
- Android:最常用和最难用的控件----ListView
- 最难用和最常用的控件<ListView>
- 最常用和最难用的控件(ListView)
- 最常用和最难用的控件---ListView
- 最常用和最难用的控件——ListView
- 最常用和最难用的控件——ListView
- 最常用和最难用的控件——ListView
- 最常用和最难用的控件——ListView
- 【Android成长之路】最常用和最难用的控件——ListView的浅谈(ListView 的简单用法)
- 【Android成长之路】最常用和最难用的控件——ListView的浅谈(定制ListView 的界面)
- 【Android成长之路】最常用和最难用的控件——ListView的浅谈(ListView 的点击事件)
- 最常用的控件ListView
- Android最常用而又最难用控件—ListView(一)。
- Android最常用而又最难用控件—ListView(二)。
- Android最常用而又最难用控件—ListView(三)。
- 【Android成长之路】最常用和最难用的控件——ListView的浅谈(提升ListView 的运行效率)
- 第一行代码3.5-最常用和最难用的控件--ListView
- 最常用的控件ListView简单使用
- angular的http请求需要注意的地方
- C++中的多态
- 进阶篇:线程并行与等待之CyclicBarrier(十三)
- Selenium 1.0的历史及工作原理
- 常用类和数组习题
- Android:最常用和最难用的控件----ListView
- Thrift java 基于阻塞IO的服务端多线程通信
- 二叉树的最小深度
- WebView图文混排,图片适配4.4之后版本
- PAT乙级(Basic Level)练习题 >养兔子
- Android中创建一个使用ListView以及用BaseAdapter进行数据适配的程序
- 一个小例子集合xlrd,matplotlib,numpy,scipy使用方法(从Excel导入数据)
- IntelliJ IDEA——数据库集成工具的使用
- WebBroker StandAlone 模式下当作一个普通的 WebServer 响应静态网页或其它文件的请求