ListView简单使用实例——新闻页面demo

Dreama ·
更新时间:2024-09-20
· 592 次阅读

ListView 是 Android 系统为我们提供的一种列表显示的一种控件。
使用它可以用来显示我们常见的列表形式,继承自抽象类 AdapterView。

常用适配器介绍 ArrayAdapter:简单、易用的 Adapter,用于将数组数据作为数据源绑定到列表项中。支持泛型操作 SimpleAdapter:相比 ArrayAdapter 来说,功能比较强大,可以将数据源的数据一一的绑定到 item 中的 view 中。 CursorAdapter:用于绑定游标(直接从数据库取出数据)作为列表项的数据源,和数据库有关系,不常用。 BaseAdapter:这个是我们在实际开发中经常用到的,我们需要继承 BaseAdapter 来自定义我们自己的适配器 新闻app页面demo

下图就是我们要实现的效果

在这里插入图片描述

1.写好布局

主布局文件 一个listview
在布局中加入ListView 控件,并为ListView 指定了一个id 设置成match_parent 占满整个空间

单个item布局文件

2.定义自己的适配器MyAdapter

定义一个适配器继承自BaseAdapter
重写构造方法和 getView 方法

public class MyAdapter extends BaseAdapter { private Context context; private String[] title; private String[] type; private int[] photo; public MyAdapter(Context context, String[] title, String[] type, int[] photo) { this.context = context; this.title = title; this.type = type; this.photo = photo; } @Override public int getCount() { return title.length; } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView ==null){ convertView=View.inflate(this.context,R.layout.item_demo,null); holder = new ViewHolder(); holder.title=(TextView) convertView.findViewById(R.id.tv_title); holder.type=(TextView) convertView.findViewById(R.id.tv_type); holder.photo=(ImageView) convertView.findViewById(R.id.iv_photo); convertView.setTag(holder);//*将holder和convertview绑定*//* }else { holder=(ViewHolder) convertView.getTag(); } holder.title.setText(title[position]); holder.type.setText(type[position]); holder.photo.setImageResource(photo[position]); return convertView; } public static class ViewHolder{//*ViewHolder类是MyAdapter的静态成员*// TextView title; TextView type; ImageView photo; } }

inflate方法这里有三个参数:
第一个参数是上下文,就是当前的Activity, 第二个参数是填充的根视图,就是将每一条数据都显示在这个 view上面;第三个参数就是是否将载入的视图绑定到根视图中。

3.写好数据

在Mainactivity写好三种数据,title,type,photo
当然这种数据是应该联网拿的,这里就手写几个数据啦!

public class MainActivity extends AppCompatActivity { private ListView lv_demo; private String[] title={"2019年国庆大阅兵","大众汽车最新报价","十九大在北京隆重召开"}; private String[] type={"军事","经济","政治"}; private int[] photo={R.mipmap.p1,R.mipmap.p2,R.mipmap.p3}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv_demo = (ListView) findViewById(R.id.lv_demo); MyAdapter myAdapter = new MyAdapter(this,title,type,photo); lv_demo.setAdapter(myAdapter);/*显示*/ } }

运行!!!!!!
在这里插入图片描述


作者:一位没有感情的安卓君



listview demo

需要 登录 后方可回复, 如果你还没有账号请 注册新账号