Android -- ListView与Adapter

简介:

ListView在Android中有着很重要的作用。Android开发中ListView是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。

背景                                                                                          

建了个Person类,里面有Name,Number,id,三个属性。

private String name;
    private String number;
    private int id;

主要用来向listView中添加信息的。

布局                                                                                            

复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical">

    <ListView
        android:id="@+id/lv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
         />

</LinearLayout>
复制代码

直接放listview上去就OK了。

程序                                                                                           

复制代码

private ListView lv;
   private List<Person> list;

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        list = new ArrayList<Person>();
        lv = (ListView) findViewById(R.id.lv);
        addPerson();
        lv.setAdapter(new MyAdapter());
    }

    private class MyAdapter extends BaseAdapter {

        @Override
        public int getCount() {
            //返回大小
            return list.size();
        }

        @Override
        public Object getItem(int position) {
            // TODO 自动生成的方法存根
            return null;
        }

        @Override
        public long getItemId(int position) {
            // TODO 自动生成的方法存根
            return 0;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView tv = new TextView(getApplicationContext());
            tv.setTextSize(50);
            tv.setTextColor(Color.BLUE);
            Person person = list.get(position);
            tv.setText(person.toString());
            System.out.println("返回位置"+position);
            return tv
        }

    }

    // 添加数据函数
    private void addPerson() {

        for (int i = 0; i < 20; i++) {
            Person person1 = new Person("张三" + i, "12345678912", i);
            list.add(person1);
        }
    }
复制代码

要申明一个adapter,adapter里面放数据,然后listview通过setAdapter配置adapter。

image

----------------------------简单的分割线------------------------------------简单的---------------------------

如果需要自定义lixtview中当样式的话,可以仙剑一个布局item的布局。

item布局                                                                                  

复制代码
<?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="60dip"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/tv_id"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dip"
        android:text="id"
        android:textColor="#ff0000"
        android:textSize="18sp" />

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:orientation="vertical" >
        
        <TextView 
            android:id="@+id/tv_name"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:text="名字"
            android:textColor="#000000"
            android:textSize="18sp"/>
        <TextView 
            android:id="@+id/tv_phone"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="5dip"
            android:text="电话"
            android:textColor="#88000000"
            android:textSize="16sp"/>

    </LinearLayout>

</LinearLayout>
复制代码

重新写一下adapter里面的getView方法:

getView                                                                                    

复制代码
@Override
        public View getView(int position, View convertView, ViewGroup parent) {
            Person person = list.get(position);
            View view = View.inflate(MainActivity.this, R.layout.listview_item, null);
            //找id
            TextView tv_id = (TextView) view.findViewById(R.id.tv_id);
            tv_id.setText("id:"+person.getId());
            TextView tv_name = (TextView) view.findViewById(R.id.tv_name);
            tv_name.setText("tv_name:"+person.getName());
            TextView tv_phone = (TextView) view.findViewById(R.id.tv_phone);
            tv_phone.setText("tv_phone:"+person.getNumber());
            return view;
        }
复制代码

image

我是天王盖地虎的分割线                                                               

源代码:http://pan.baidu.com/s/1dD1Qx01

listview学习.zip

 

 




本文转自我爱物联网博客园博客,原文链接:http://www.cnblogs.com/yydcdut/p/3790828.html,如需转载请自行联系原作者

相关文章
|
3月前
|
API Android开发 开发者
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
31 2
|
4月前
|
XML Java Android开发
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
Android Studio App入门之列表视图ListView的讲解及实战(附源码 超详细必看)
90 0
|
4月前
|
XML Android开发 数据格式
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
安卓-无敌解决ListView添加标题头无法正常显示的问题(歪门邪道)
37 0
|
6月前
|
Java Android开发
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
[笔记]Android 学习一之转场动画+ViewPager+ListView简单Demo
|
11月前
|
XML Java Android开发
Android优化版ListView(附源代码)
本文是博主对Adapter(适配器)的一些理解,为了加深对Adapter的理解以及记录自己的阶段学习而写,同时也适合初学者阅读,参考本条博客的逻辑进行学习。
117 0
|
Android开发 Kotlin
Kotlin安卓实战之Adapter
Kotlin安卓实战之Adapter
211 0
Kotlin安卓实战之Adapter
|
Android开发
安卓中listview点击每一条进入不同界面
安卓中listview点击每一条进入不同界面
96 0
|
XML 前端开发 数据库
Android Adapter 详解
Android是完全遵循MVC模式设计的框架,Activity是Controller,layout是View。因为layout五花八门,很多数据都不能直接绑定上去,所以Android引入了Adapter这个机制作为复杂数据展示的转换载体,所以各种Adapter只不过是转换的方式和能力不一样而已。
417 0
Android Adapter 详解
|
Java Android开发 Kotlin
Android Studio 的ListView 的用法
Android Studio 的ListView 的用法
205 0
Android Studio 的ListView 的用法
|
Android开发
Android自定义ListView和GridView解决滑动冲突和显示不全
Android自定义ListView和GridView解决滑动冲突和显示不全
141 0