以下为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); } }
示例展示如下:
相关推荐
在"android 一些listview例子"这个主题中,我们将会深入探讨ListView的各种使用方法和优化策略。 首先,ListView的基本使用涉及到创建适配器(Adapter)。适配器是连接数据源与ListView的关键,常见的有BaseAdapter...
在Android开发中,...通过实践这个简单的ListView例子,你可以深入理解Android中列表视图的使用,为以后的开发工作打下坚实的基础。在实际项目中,你可能会遇到更复杂的需求,但只要掌握了基本原理,就能灵活应对。
总的来说,`Android viewpager+listview例子`是一个很好的实践项目,它涵盖了Android UI设计中的关键组件和交互方式。通过学习和实践这个例子,开发者不仅可以掌握如何使用`ViewPager`和`ListView`,还能深入理解...
这个"android listview 例子"着重展示了ListView在实际应用中的复杂使用方式,特别是如何在一个ListView中包含各种不同的控件,以实现丰富的界面效果。 ListView的工作原理基于Adapter模式,Adapter是连接数据源和...
在这个例子中,我们需要一个特殊的Adapter,它不仅需要管理数据列表,还需要知道哪些数据是分组标题,哪些是普通数据项。分组标题通常对应于日期,而普通数据项则包含具体的时间、事件等信息。 为了实现分组,我们...
在Android应用开发中,ListView是显示大量数据列表的常用组件,尤其在构建用户界面时扮演着重要角色。本文将深入探讨如何在Eclipse开发环境中利用ListView结合Adapter来展示数据。 首先,`ListView`是一个可滚动的...
在这个例子中,我们假设存在三个不同的Activity(FirstActivity、SecondActivity、ThirdActivity),每个Activity对应列表项的一个位置。根据`position`,我们可以启动相应的Activity,实现界面跳转。 ### 6. 进阶...
在这个例子中,当用户长按通讯录条目时,可能会弹出一个快速操作菜单,让用户可以选择拨打电话、发送短信或者查看详细信息。 为了实现这个小例子,你需要熟悉以下关键点: 1. 创建自定义Adapter并重写`getView()`...
在这个例子中,`item_layout.xml`是每个Item的布局文件,包含一个TextView(id为`text_view`)和一个Button(id为`button`)。在getView()方法中,我们首先检查convertView是否为空,如果为空则创建新的视图,然后...
在Android开发中,ListView是一个非常重要的视图组件,它允许我们显示大量的数据并进行滚动操作。本示例将深入探讨如何在Android中自定义ListView,包括它的创建、数据绑定以及实现一些视觉效果。 首先,创建一个...
在Android开发中,ListView是一种常用的UI组件,用于展示大量数据列表。这个"Android实现ListView的增删改查Demo"是一个实战教程,旨在教你如何在Android应用中实现对ListView中的数据进行添加、删除、修改和查询...
虽然在这个例子中没有直接涉及,但在实际应用中,我们可能会将ListView与DrawerLayout结合起来,创建一个侧滑菜单并展示列表内容。 总的来说,Xamarin.Android的ListView结合ArrayAdapter提供了灵活的数据绑定方式...
在这个例子中,使用了一个名为WipeListView的开源库,该库为实现这一功能提供了便利。 WipeListView库是一个专门为Android设计的ListView扩展,它添加了滑动手势支持,允许用户轻松实现侧滑删除或其他自定义操作。...
在这个例子中,ListView就是那个子View。 要实现下拉刷新,首先在XML布局文件中添加SwipeRefreshLayout,并包含ListView: ```xml <androidx.swiperefreshlayout.widget.SwipeRefreshLayout android:id="@+id/...
这个"Android应用源码 ListView下拉刷新 Demo"提供了一个实际的例子,帮助开发者了解如何在ListView中实现这一功能。 1. **SwipeRefreshLayout**:Android SDK 提供了一个名为SwipeRefreshLayout的布局容器,它是...
在这个例子中,我们需要创建一个自定义的Adapter,继承自BaseAdapter或ArrayAdapter。Adapter负责将数据转化为ListView项视图,通常包括一个ImageView和一个TextView。 2. 布局设计:为ListView项创建XML布局文件,...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据的列表形式。"android listview小例子"这个项目提供了一个简单的ListView demo,其主要目的是展示如何创建一个具有背景颜色和美化效果的ListView。...
在这个例子中,列表项可能包含一个TextView,我们想要点击这个TextView时更改它的文本。 1. 创建自定义Adapter类: ```java public class CustomAdapter extends ArrayAdapter<String> { // 构造函数,传入上...
在Android开发中,ListView是一种非常常见的控件,用于展示大量数据列表。它的高效性和可滚动性使得它在各种应用中广泛使用。当我们需要在每个列表项中添加交互元素,如Button,来提供用户操作,那么就需要对...
这个“Android ListView分类例子”很可能是探讨如何在ListView中实现分组或分类的功能,以更有效地管理和呈现数据。 ListView允许开发者通过适配器(Adapter)将数据源与视图(View)绑定,每个ListView项都是一个...