Android listview的某条item数据一直排在首位的问题
来源:互联网 发布:linux切换到图形界面 编辑:程序博客网 时间:2024/06/10 07:50
用listview加载数据时,有时候项目里面某些功能需求,需要将某条数据一直排在首位,比如一些默认地址之类的,这时候处理方法可以是:1、服务器返回数据时就先将数据排序好,然后客户端拿到后直接显示;2、客户端拿到数据自己获取到想要排在首位的那条数据,然后将其插到首位
下面说说第二种方法,这种也比较适合当数据量不大的时候可以使用,如何插到首位呢,可以通过list.add(position,value);这里面的position是你想插到哪个位置,value是你的值或者对象
举个例子:
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
这时候我想把“cc”插入到首位,,考虑到项目里面用的可能是一个实体类对象,到时候可能会是通过实体类里面的某个字段来判断是不是我们想要的那个item数据将其排到首位,所以数据量不大时,我们可以遍历list,然后拿到我们想要的那条item数据
for (int i = 0; i < list.size(); i++) {
String string = list.get(i);
if (string.equals("cc")) {
list.add(0, string);
}
}
这时候如果我们不注意的话,,就会发现执行不下去了,,因为这样造成了一个死循环,这样写法是错误的,因为我们没add一次,list的size就会加1,那样的话就会一直循环下去了,这时候我们应该这样处理,先把size拿出来
int size = list.size();
for (int i = 0; i < size; i++) {
String string = list.get(i);
if (string.equals("cc")) {
list.add(0, string);
}
}
这时候可以解决死循环的问题了,,但是另外一个问题又来了,就是打印后发现数据多了,那是因为add之后没有及时remove掉,所以我们应该要这样操作
int size = list.size();
for (int i = 0; i < size; i++) {
String string = list.get(i);
if (string.equals("cc")) {
list.add(0, string);
list.remove(i+1);
}
}
这样就能达到我们想要的目的了,,,下面是完整的一个测试方法
public static void test(){
List<String> list = new ArrayList<String>();
list.add("aa");
list.add("bb");
list.add("cc");
list.add("dd");
System.out.println("--111--->>>"+list);
int size = list.size();
for (int i = 0; i < size; i++) {
String string = list.get(i);
if (string.equals("cc")) {
list.add(0, string);
list.remove(i+1);
System.out.println("--->>>"+string);
}
}
System.out.println("--333--->>>"+list);
}
好了,,感觉好啰嗦,废话挺多的,,只是想记录一下而已,希望大家看到别吐槽哈。。。嘎嘎
- Android listview的某条item数据一直排在首位的问题
- 最大的字符排在首位
- 解决ActionBar Item 一直出现在Action OverFlow的问题
- listview item的问题
- Android ListView的Item点击失效问题
- android中关于在ListView的子item中有控件抢占ListView的焦点问题
- Android 自定义ListView只显示第一条数据的问题
- android 关于ListView Item数据混乱问题
- android 关于ListView Item数据混乱问题
- 【Android问题集】ListView的item的listSelector在第一次时不起作用
- Android 解决ListView插入其他布局条目(item或广告)删掉数据的问题
- android小问题:如何在Listview中获取上下文菜单对应的item项
- ListView的item点击问题
- Android listView同时展示多种不同数据的item
- Android 不同类型item的listview
- android ListView的item与其子控件的焦点问题
- android ListView的item与其子控件的焦点问题
- android Listview显示不同的item遇到的问题
- GPS采集中的均值统计及误差计算
- Java中一个指定日期加上指定天数得到新日期
- 分支限界与回溯法对比
- 获取两个日期之间相差的周数
- UITableViewCell的重用问题
- Android listview的某条item数据一直排在首位的问题
- notepad++ 删除两字符之间的
- 深入浅出 Android Touch 事件分发拦截响应机制
- JAVA-相关技术超链接
- Mac下将Nginx配置成开机启动服务
- 浅谈java中 hashCode方法
- React State 状态机
- 写一个简单的短信监听器——SmsListener
- 求两个数的最大公约数(欧几里德算法)