点击“单价”按钮或“数量信息”按钮,可按据升序或降序进行排序。

布局没什么好说的

在这里插入代码片<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".shangpingActivity"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="50dp"android:text="商品列表"android:textColor="#000000"android:textStyle="bold"android:textSize="25sp"android:gravity="center"/><LinearLayoutandroid:layout_marginTop="5dp"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="horizontal"><TextViewandroid:text="ID"android:textStyle="bold"android:textColor="#000000"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/><TextViewandroid:text="商品名称"android:textStyle="bold"android:textColor="#000000"android:gravity="center"android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"/><TextViewandroid:text="供应商"android:textStyle="bold"android:textColor="#000000"android:gravity="center"android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_but_price"android:text="单价(元)"android:textStyle="bold"android:textColor="#000000"android:gravity="center"android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_but_num"android:text="数量(个)"android:textStyle="bold"android:textColor="#000000"android:gravity="center"android:layout_weight="1"android:layout_width="0dp"android:layout_height="wrap_content"/></LinearLayout><ListViewandroid:id="@+id/list_viewsp"android:layout_width="match_parent"android:layout_height="match_parent"/></LinearLayout></LinearLayout>

接下来写 商品的实体类

在这里插入代码片
public class Shangping {private String id;private String name;private String shop;private String price;private String num;public Shangping(String id, String name, String shop, String price, String num) {this.id = id;this.name = name;this.shop = shop;this.price = price;this.num = num;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getShop() {return shop;}public void setShop(String shop) {this.shop = shop;}public String getPrice() {return price;}public void setPrice(String price) {this.price = price;}public String getNum() {return num;}public void setNum(String num) {this.num = num;}
}

实体类为后面的传值做准备

接着写listview的布局文件

在这里插入代码片<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><TextViewandroid:id="@+id/tv_id"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_name"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_shop"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_privc"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/><TextViewandroid:id="@+id/tv_num"android:gravity="center"android:layout_width="0dp"android:layout_weight="1"android:layout_height="wrap_content"/></LinearLayout>

然后写listview的适配器

在这里插入代码片public class AdapterShangPing extends ArrayAdapter {private int count;public AdapterShangPing(@NonNull Context context, int resource, List<Shangping> list) {super(context, resource,list);count=resource;}@NonNull@Overridepublic View getView(int position, @Nullable View convertView, @NonNull ViewGroup parent) {Shangping sp= (Shangping) getItem(position);View view= LayoutInflater.from(getContext()).inflate(count,null);TextView tv1,tv2,tv3,tv4,tv5;tv1=view.findViewById(R.id.tv_id);tv2=view.findViewById(R.id.tv_name);tv3=view.findViewById(R.id.tv_shop);tv4=view.findViewById(R.id.tv_privc);tv5=view.findViewById(R.id.tv_num);tv1.setText(sp.getId());tv2.setText(sp.getName());tv3.setText(sp.getShop());tv4.setText(sp.getPrice());tv5.setText(sp.getNum());return view;}
}

接着写排序,排序其实很简单,只需要创建一个实体类然后实现Comparator接口,然后重写compare方法

在这里插入代码片
public class Pricesort implements Comparator<Shangping> {@Overridepublic int compare(Shangping o1, Shangping o2) {return o1.getPrice().compareTo(o2.getPrice());}
}
在这里插入代码片
public class Numsort implements Comparator<Shangping> {@Overridepublic int compare(Shangping o1, Shangping o2) {return o1.getNum().compareTo(o2.getNum());}
}

最后附上Activity代码

在这里插入代码片
public class shangpingActivity extends AppCompatActivity {private ListView listView;private List<Shangping> list_sp=new ArrayList<>();//存数据TextView tvbut_price,tvbut_num;AdapterShangPing adapter;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_shangping);into();//初始化数据listView=findViewById(R.id.list_viewsp);tvbut_num=findViewById(R.id.tv_but_price);tvbut_price=findViewById(R.id.tv_but_num);adapter=new AdapterShangPing(shangpingActivity.this,R.layout.list_shangping,list_sp);//初始化适配器listView.setAdapter(adapter);setClick();//设置textview的点击事件,然后排序}private  void into(){list_sp.add(new Shangping("1","发动机10A","发动机供应商","3,100","6"));list_sp.add(new Shangping("2","发动机10A","发动机供应商","4,100","1"));list_sp.add(new Shangping("3","发动机10A","发动机供应商","5,100","3"));list_sp.add(new Shangping("4","发动机10A","发动机供应商","4,300","4"));}private void setClick(){tvbut_price.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Collections.sort(list_sp,new Numsort());adapter.notifyDataSetChanged();}});tvbut_num.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Collections.sort(list_sp,new Pricesort());adapter.notifyDataSetChanged();}});}}

Android 用ListView实现排序相关推荐

  1. android a z 快速定位,快速集成android实现listview的字母A-Z排序,界面侧边字母索引...

    Android手机字母A-Z排序侧边索引是非常常见的功能,在此提供快速集成框架.教你用Android studio工具一分钟搞定这个效果. 实现效果: 以及点击F跳转效果 第一步库包导入实现拼音检索功 ...

  2. Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155 前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了 ...

  3. Android实现ListView的A-Z字母排序和过滤搜索功能

    原文地址: http://blog.csdn.net/xiaanming/article/details/12684155 首先先看下效果图   上面是一个带删除按钮的EditText,我们在输入框中 ...

  4. Android实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/12684155 前段时间因为换工作的缘故又恰巧碰到国庆节,所以有段时间自己没有更新博客了 ...

  5. android 实现listView的A-Z字幕排序

    Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音 分类: Android 高手进阶2013-10-13 21:46 66905人阅读 评论(213) 收藏 举报 L ...

  6. android 字母排序i,Android 使用ListView的A-Z字母排序功能实现联系人模块

    在上一篇文章当中,主要学习了ListView的A-Z字母排序功能以及根据输入框的输入值改变来过滤搜索结果,如果输入框里面的值为空,更新为原来的列表,否则为过滤数据列表,包括汉字转成拼音的功能,如果你还 ...

  7. android列表字母排序,Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音...

    [实例简介]Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音 [实例截图] [核心代码] package com.example.sortlistview; imp ...

  8. Android中Listview(七)--排序ListView

     ListView的A-Z字母排序和过滤搜索功能并且实现汉字转成拼音的功能,我们知道一般我们对联系人,城市列表等实现A-Z的排序,因为联系人和城市列表我们可以直接从数据库中获取他的汉字拼音,而对于 ...

  9. 开启Fluter基础之旅五-------ListView 3D滚动、Flipper效果、ListView下拉刷新上拉加载、ListView重排序...

    继续来来操练Flutter的基础,对于Flutter的学习也有一段时间了,实操项目还木有做过,所以待这次基础学完之后就打算用一个项目对之前所学的进行一下巩固,不然光学这些零散的知识点最终还是不会Flu ...

最新文章

  1. 图论-欧拉路(UVA10054)(HDU1116)
  2. 关于Two pointers的个人理解
  3. 推荐两个非常实用的,Python装饰器
  4. 杭电60题--part 1 HDU1003 Max Sum(DP 动态规划)
  5. pythonweb开发面试_Python web 面试题(一)
  6. c语言%3c与 的优先级,C语言程序设计第3章顺序程序设计.ppt
  7. 2022春节档新片预售总票房达1.08亿
  8. django解决:ModuleNotFoundError: No module named ‘django.core.urlresolvers‘
  9. Redis——Java连接Redis
  10. html遍历1到100,bat for循环100次:循环100求和
  11. 帆软报表-快速入门(持续更新)
  12. 优秀在线答题小程序汇总分享
  13. CSS3之box-shadow(阴影)和border属性
  14. 网络营销优势有哪些?
  15. 万维网联盟将于2014年推出HTML5标准(四)
  16. Oracle表归档,oracle数据库归档详解
  17. ariang修改默认服务器,Aria2一键安装脚本,宝塔面板搭建AriaNg前端面板
  18. jzoj 5850.【NOIP提高组模拟2018.8.25】e 可持久化线段树+lca
  19. 将消息转发到客服+php,将消息转发到微信客服
  20. 数据化运营chapter4_code--分析模型和方法

热门文章

  1. Vscode快速删除注释的插件
  2. css详解position五种属性用法及其含义
  3. 爬虫(成都58同城所有房价,Python实现)
  4. itoa 头文件 linux,Linux下的itoa函数
  5. jsplumb设置锚点_jsplumb
  6. 01 期货交易所及期货品种
  7. 【读书笔记】《美丽新世界》
  8. 职业经理人能力提升(MTP)专家胡立
  9. python 通过ping获取丢包率
  10. 二进制数、八进制数、十六进制数与…