`
wenxin2009
  • 浏览: 320523 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android中ListView例子

 
阅读更多

以下为ListView完整例子:

1、activity_address_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <include layout="@layout/title"></include>

    <ListView
        android:id="@+id/address_list_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="45dp"
        android:layout_marginBottom="50dp">

    </ListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_alignParentBottom="true">
        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#45bf23"
            android:textColor="@color/white"
            android:text="添加新地址"
            android:textSize="16dp"/>

    </LinearLayout>
</RelativeLayout

 

2、item_address.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white">

    <TextView
        android:id="@+id/item_address_txt"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/textsize_14dp"
        android:textColor="@color/text_color"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="15dp"
        android:text="[默认]"/>
    <TextView
        android:id="@+id/item_address_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/textsize_14dp"
        android:textColor="@color/text_color"
        android:layout_toRightOf="@+id/item_address_txt"
        android:layout_marginLeft="5dp"
        android:layout_marginTop="15dp"
        android:text="刘智"/>

    <TextView
        android:id="@+id/item_address_phone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="@dimen/textsize_14dp"
        android:textColor="@color/text_color"
        android:layout_alignParentRight="true"
        android:layout_marginTop="15dp"
        android:layout_marginRight="20dp"
        android:text="18711865875"/>

    <TextView
        android:id="@+id/item_address"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="40dp"
        android:textColor="@color/default_text_color"
        android:textSize="@dimen/textsize_12dp"
        android:text="湖南省长沙市"
        />

    <!-- line 1-->
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="0.5dp"
        android:background="@color/eeeeee_color"
        android:layout_marginTop="75dp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="80dp"
        android:background="@color/white">
        <Button
            android:layout_width="wrap_content"
            android:layout_height="43dp"
            android:layout_weight="1"
            android:textSize="13dp"
            android:background="@null"
            android:text="编辑"/>
        <ImageView
            android:layout_width="1dp"
            android:layout_height="15dp"
            android:layout_gravity="center_vertical"
            android:background="@color/eeeeee_color"
            android:layout_weight="0"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="43dp"
            android:layout_weight="1"
            android:textSize="13dp"
            android:background="@null"
            android:text="设为默认"/>

    </LinearLayout>
    <!-- line 2-->
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="10dp"
        android:background="@color/eeeeee_color"
        android:layout_marginTop="127dp"/>

</RelativeLayout>

 

3、AddressAdapter.java

import java.util.ArrayList;
import java.util.List;

/**
 * 地址Adapter
 * Created by dwen on 2018/3/30.
 */

public class AddressAdapter extends BaseAdapter {

    List<AddressModel> addressList = new ArrayList<AddressModel>();
    Context context;

    public AddressAdapter( Context context,List<AddressModel> addressList) {
        this.addressList = addressList;
        this.context = context;
    }

    @Override
    public int getCount() {
        return this.addressList.size();
    }

    @Override
    public Object getItem(int position) {
        return this.addressList.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        final ViewHolder holder;
        AddressModel addressModel = addressList.get(position);
        if (null == convertView){
            convertView = LayoutInflater.from(context).inflate(R.layout.item_address,null);
            holder = new ViewHolder(convertView);
            holder.txtDefault = convertView.findViewById(R.id.item_address_txt);
            holder.txtName = convertView.findViewById(R.id.item_address_name);
            holder.txtPhone = convertView.findViewById(R.id.item_address_phone);
            holder.txtAddress = convertView.findViewById(R.id.item_address);
            //TODO 须判断 是否显示隐藏"默认"
            holder.txtDefault.setText("[默认]");
            holder.txtName.setText(addressModel.getName());
            holder.txtPhone.setText(addressModel.getPhone());
            holder.txtAddress.setText(addressModel.getAddress());
            convertView.setTag(holder);
        }else{
            //直接通过holder获取子控件,不必使用findviewbyid,加快了 UI 的响应速度
            holder = (ViewHolder) convertView.getTag();
            //TODO 须判断 是否显示隐藏"默认"
            holder.txtDefault.setText("[默认]");
            holder.txtName.setText(addressModel.getName());
            holder.txtPhone.setText(addressModel.getPhone());
            holder.txtAddress.setText(addressModel.getAddress());
        }
        return convertView;
    }

    /**
     * ViewHolder save view and speed UI
     */
    static class ViewHolder{
        TextView txtDefault,txtName,txtPhone,txtAddress;

        public ViewHolder() {

        }

        public ViewHolder(View view) {

        }
    }
}

 

4、AddressListActivity.java

import java.util.ArrayList;
import java.util.List;

/**
 * 收货地址
 * Created by dwen on 2018/3/30.
 */

public class AddressListActivity extends BaseActivity {

    private List<AddressModel> addressList = new ArrayList<>();
    private ListView listView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_address_list);
        this.initAddressList();
        listView = (ListView) findViewById(R.id.address_list_view);
        AddressAdapter adapter = new AddressAdapter(AddressListActivity.this,addressList);
        listView.setAdapter(adapter);

    }

    /**
     * test address
     */
    private void initAddressList(){
        AddressModel model = new AddressModel();
        model.setIsDefault(1);
        model.setName("测试001");
        model.setPhone("13900000000");
        model.setAddress("湖南省长沙市湖南省长沙市");
        addressList.add(model);
        AddressModel model2 = new AddressModel();
        model2.setIsDefault(1);
        model2.setName("测试002");
        model2.setPhone("13900000000");
        model2.setAddress("湖南省长沙市湖南省长沙市");
        addressList.add(model2);
        AddressModel model3 = new AddressModel();
        model3.setIsDefault(1);
        model3.setName("测试003");
        model3.setPhone("13900000000");
        model3.setAddress("湖南省长沙市湖南省长沙市");
        addressList.add(model3);
        AddressModel model4 = new AddressModel();
        model4.setIsDefault(1);
        model4.setName("测试004");
        model4.setPhone("13900000000");
        model4.setAddress("湖南省长沙市湖南省长沙市");
        addressList.add(model4);
        AddressModel model5 = new AddressModel();
        model4.setIsDefault(1);
        model4.setName("测试005");
        model4.setPhone("13900000000");
        model4.setAddress("湖南省长沙市湖南省长沙市");
        addressList.add(model4);

    }
}

 

示例展示如下:



 

  • 大小: 77.7 KB
分享到:
评论

相关推荐

    android 一些listview例子

    在"android 一些listview例子"这个主题中,我们将会深入探讨ListView的各种使用方法和优化策略。 首先,ListView的基本使用涉及到创建适配器(Adapter)。适配器是连接数据源与ListView的关键,常见的有BaseAdapter...

    android中一个简单的LIstView用法例子

    在Android开发中,...通过实践这个简单的ListView例子,你可以深入理解Android中列表视图的使用,为以后的开发工作打下坚实的基础。在实际项目中,你可能会遇到更复杂的需求,但只要掌握了基本原理,就能灵活应对。

    Android viewpager+listview例子

    总的来说,`Android viewpager+listview例子`是一个很好的实践项目,它涵盖了Android UI设计中的关键组件和交互方式。通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解...

    android listview 例子

    这个"android listview 例子"着重展示了ListView在实际应用中的复杂使用方式,特别是如何在一个ListView中包含各种不同的控件,以实现丰富的界面效果。 ListView的工作原理基于Adapter模式,Adapter是连接数据源和...

    Android中ListView中数据按照时间\日期分组(分类)标题可悬浮

    在这个例子中,我们需要一个特殊的Adapter,它不仅需要管理数据列表,还需要知道哪些数据是分组标题,哪些是普通数据项。分组标题通常对应于日期,而普通数据项则包含具体的时间、事件等信息。 为了实现分组,我们...

    Android中ListView+Adapter

    在Android应用开发中,ListView是显示大量数据列表的常用组件,尤其在构建用户界面时扮演着重要角色。本文将深入探讨如何在Eclipse开发环境中利用ListView结合Adapter来展示数据。 首先,`ListView`是一个可滚动的...

    Android之ListView列表视图和界面跳转实现

    在这个例子中,我们假设存在三个不同的Activity(FirstActivity、SecondActivity、ThirdActivity),每个Activity对应列表项的一个位置。根据`position`,我们可以启动相应的Activity,实现界面跳转。 ### 6. 进阶...

    Android开发教程:仿通讯录ListView小例子

    在这个例子中,当用户长按通讯录条目时,可能会弹出一个快速操作菜单,让用户可以选择拨打电话、发送短信或者查看详细信息。 为了实现这个小例子,你需要熟悉以下关键点: 1. 创建自定义Adapter并重写`getView()`...

    Android 为ListView每个Item上面的按钮添加事件

    在这个例子中,`item_layout.xml`是每个Item的布局文件,包含一个TextView(id为`text_view`)和一个Button(id为`button`)。在getView()方法中,我们首先检查convertView是否为空,如果为空则创建新的视图,然后...

    android listview自定义控件例子

    在Android开发中,ListView是一个非常重要的视图组件,它允许我们显示大量的数据并进行滚动操作。本示例将深入探讨如何在Android中自定义ListView,包括它的创建、数据绑定以及实现一些视觉效果。 首先,创建一个...

    Android实现ListView的增删改查Demo

    在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。这个"Android实现ListView的增删改查Demo"是一个实战教程,旨在教你如何在Android应用中实现对ListView中的数据进行添加、删除、修改和查询...

    xamarin android listview简单例子

    虽然在这个例子中没有直接涉及,但在实际应用中,我们可能会将ListView与DrawerLayout结合起来,创建一个侧滑菜单并展示列表内容。 总的来说,Xamarin.Android的ListView结合ArrayAdapter提供了灵活的数据绑定方式...

    Android的listview侧滑删除的例子

    在这个例子中,使用了一个名为WipeListView的开源库,该库为实现这一功能提供了便利。 WipeListView库是一个专门为Android设计的ListView扩展,它添加了滑动手势支持,允许用户轻松实现侧滑删除或其他自定义操作。...

    android中listview实现下拉自动分页刷新资源

    在这个例子中,ListView就是那个子View。 要实现下拉刷新,首先在XML布局文件中添加SwipeRefreshLayout,并包含ListView: ```xml &lt;androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/...

    Android应用源码 ListView下拉刷新 Demo

    这个"Android应用源码 ListView下拉刷新 Demo"提供了一个实际的例子,帮助开发者了解如何在ListView中实现这一功能。 1. **SwipeRefreshLayout**:Android SDK 提供了一个名为SwipeRefreshLayout的布局容器,它是...

    Android ListView扩展(图片+文字)

    在这个例子中,我们需要创建一个自定义的Adapter,继承自BaseAdapter或ArrayAdapter。Adapter负责将数据转化为ListView项视图,通常包括一个ImageView和一个TextView。 2. 布局设计:为ListView项创建XML布局文件,...

    android listview小例子

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。"android listview小例子"这个项目提供了一个简单的ListView demo,其主要目的是展示如何创建一个具有背景颜色和美化效果的ListView。...

    android修改listview列表的item中某个控件的值demo

    在这个例子中,列表项可能包含一个TextView,我们想要点击这个TextView时更改它的文本。 1. 创建自定义Adapter类: ```java public class CustomAdapter extends ArrayAdapter&lt;String&gt; { // 构造函数,传入上...

    Android ListView添加Button及其事件

    在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在各种应用中广泛使用。当我们需要在每个列表项中添加交互元素,如Button,来提供用户操作,那么就需要对...

    Android ListView分类例子

    这个“Android ListView分类例子”很可能是探讨如何在ListView中实现分组或分类的功能,以更有效地管理和呈现数据。 ListView允许开发者通过适配器(Adapter)将数据源与视图(View)绑定,每个ListView项都是一个...

Global site tag (gtag.js) - Google Analytics