今天在项目中用到了水平ListView控件HorizontalListView,也是我在网上找的个开源HorizontalListView直接在项目中使用.我是把HorizontalListView放在了能够切换的Tab页面中的,在使用的时候发现了一个小问题:在切换TAB页时.更新相应的adapter数据时,调用adapter的notifyDataSetChanged()方法发现达不到想要的效果.后来在网上查了下.才知道: 横向listview中notifyDataSetInvalidated(…
最近在开发中遇到一个问题,Adapter中使用notifyDataSetChanged 与notifyDataSetInvalidated无效,经过思考和网上查找,得出如下原因. 首先看一下notifyDataSetChanged与notifyDataSetInvalidated的区别 我们可应用粮仓来解释一下,两者的区别. notifyDataSetChanged:粮仓中得粮食少了,或者多了,发送通知. notifyDataSetInvalidated:粮仓变换了,比如原来从A仓取粮食,现在换…
ViewPager是android-support-v4.jar包中的一个系统控件,继承自ViewGroup,专门用以实现左右滑动切换View的效果,使用时需要首先在Project->properties->Java Build Path->Libraries->Add External Jars中加入sdk目录下的extras/android/support/v4/android-support-v4.jar(如果找不到,则需要用sdk manager下载android supp…
最基本的方法: 针对于child view比较简单的情况(例如仅有TextView.ImageView等,没有ListView等展示数据的情况),可以在自己的Adapter中加入代码: @Override public int getItemPosition(Object object) { return POSITION_NONE; } 这样既可达到一般情况下要求的效果. 存在的问题: 这不是PagerAdapter中的Bug,通常情况下,调用 notifyDataSetChanged方法会让…
在一个 Android 应用中,我使用 FragmentPagerAdapter 来 处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些…
为什么调用 FragmentPagerAdapter.notifyDataSetChanged() 并不能更新其 Fragment? 转自:http://www.apkbus.com/android-90417-1-1.html aitian 发表于 2013-1-4 17:31:57 浏览(386111) 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改…
转载自:http://www.cnblogs.com/dancefire/archive/2013/01/02/why-notifyDataSetChanged-does-not-work.html 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragme…
分类:C#.Android.VS2015: 创建日期:2016-02-27 一.简介 前面我们了解了内部存储.外部存储的含义,用一句话说,内部存储实际上是保存在"data"文件夹下,外部存储(SD卡)实际是保存在"sdcard"或者"storage"文件夹下. 这个例子演示如何将这些内部存储和外部存储的文件夹及其子文件架下的文件全部显示出来,类似于树形结构一层一层地向下看(例子没有实现返回上层的功能,或者说,仅仅实现了Android自带的文件浏览…
项目中用到了自定义横向滑动的控件:HorizontalListView,点击其中一项,跳转到另外一个大图界面,大图界面也是HorizontalListView,想使用setSelection方法设定 项目中用到了自定义横向滑动的控件:HorizontalListView,点击其中一项,跳转到另外一个大图界面,大图界面也是HorizontalListView,想使用setSelection方法设定到点击的位置,却发现这个开源的代码没有实现这个方法.解决方法如下: 1.HorizontalListV…
在Android中,ListView是最常用的一个控件,在做UI设计的时候,很多人希望能够改变一下它的背景,使他能够符合整体的UI设计,改变背景背很简单只需要准备一张图片然后指定属性 android:background="@drawable/bg",不过不要高兴地太早,当你这么做以后,发现背景是变了,但是当你拖动,或者点击list空白位置的时候发现ListItem都变成黑色的了,破坏了整体效果 这是为什么呢? 这个要从Listview的效果说起,默认的ListItem背景是透明的,而…
搞了好几天终于有点眉目了,这里接着总结一下Android中WiFi的使用,在前面(http://smallwoniu.blog.51cto.com/3911954/1334951)我们已经简单了解了Wifi实际操作中所用到的几个主要类,今天就剖析一个WIFI搜索.创建.关闭.连接及一些简单的动画的综合案例.   首先,我们还是看一下我们项目的框架 MainActivity类:(处理wifi消息,加载UI) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18…
参考 <设计模式:可复用面向对象软件的基础 >5.7 Observer 观察者 对象行为型模式 <设计模式解析> 18.4 Observer模式 <Android源码设计模式解析与实战>第12章 解决,解耦的钥匙--观察者模式 本人能力有限,如有明显错误,不规范的地方,请指正,谢谢. 意图 定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新. 别名 依赖(Dependents)发布-订阅(Publish-Subscrib…
一.简述 不管AbsListView(ListView.GridView)或是新出的RecyclerView,在使用notifyDataSetChanged方法更新列表数据时,一定要保证数据为同个对象(即hashCode要一致).对于这个问题的论证,可以去看官方源代码,或是看我之前写的一篇博文“解决ListViews适配器notifyDataSetChanged()无效问题”,相信可以帮到你.但是,这个不是本文的重点,本文重点讲解在Fragment中,RecyclerView遇到notifyDa…
Filter 顺便看看,Android中过滤器是怎么实现的? 注释中提到,Filter一般通过继承Filterable实现 具体实现 这是SimpleAdapter出现的一个过滤首字母item的一个过滤器 private class SimpleFilter extends Filter { @Override protected FilterResults performFiltering(CharSequence prefix) { FilterResults results = new F…
转载:http://blog.csdn.net/dreamzml/article/details/9951577 ViewPager ViewPager 如其名所述,是负责翻页的一个 View.准确说是一个 ViewGroup,包含多个 View 页,在手指横向滑动屏幕时,其负责对 View 进行切换.为了生成这些 View 页,需要提供一个 PagerAdapter 来进行和数据绑定以及生成最终的 View 页. setAdapter() ViewPager 通过 setAdapter() 来…
自定义AutoCompleteTextView 博客分类: android进阶 android  网上找到的都是同ArrayAdapter一起使用的,有时候需要自定义风格,咋办?follow me! 看上图,实现了清空输入框内容和删除Item功能. 其实使用AutoCompleteTextView就得实现过滤器Filterable,你得告诉它怎么过滤.由于ArrayAdapter已经 帮我们实现了Filterable接口,所以我们很容易忽略这个,以为AutoCompleteTextView用起来…
前言 最近在开发一个IM项目的时候有一个需求就是,好友搜索功能.即在EditText中输入好友名字,ListView列表中动态展示刷选的好友列表.我把这个功能抽取出来了,先贴一下效果图: 分析 在查阅资料以后,发现其实Android中已经帮我们实现了这个功能,如果你的ListView使用的是系统的ArrayAdapter,那么恭喜你,下面的事情就很简单了,你只需要调用下面的代码就可以实现了: searchEdittext.addTextChangedListener(new TextWatche…
转载地址:http://blog.csdn.net/dreamzml/article/details/9951577 ViewPager ViewPager 如其名所述,是负责翻页的一个 View.准确说是一个 ViewGroup,包含多个 View 页,在手指横向滑动屏幕时,其负责对 View 进行切换.为了生成这些 View 页,需要提供一个 PagerAdapter 来进行和数据绑定以及生成最终的 View 页. setAdapter() ViewPager 通过 setAdapter()…
转自 http://blog.csdn.net/getchance/article/details/40263505 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSe…
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些确…
最近项目中需要做搜索功能,实现类似 Google.Baidu 搜索的 下拉提示效果.Android为我们提供了 AutoCompleteTextView 控件来完成此功能. 网上好多例子都是简单使用 ArrayAdapter 来实现的,界面比较简单,实际项目中用处不大:自己研究了一番,自定义Adapter 继承BaseAdapter 并实现Filterable 接口 实现了上述功能. 运行效果截图 package com.example.actv; import java.util.ArrayL…
x 在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有…
AutoCompleteTextView具有输入提示的功能,但是它的这种提示不适合对股票列表的过滤,如果你玩过股票软件,就会知道只要输入股票名称的首字母或股票代码就会出现符合匹配的股票,这种过滤怎么实现呢? 还有个问题,汉字具有多音字,如何实现多音字的匹配,比如“长江证券”,无论你输入“cjzq”或者“zjzq”都会匹配到它,这都是需要解决的问题! 匹配的关键在于重写BaseAdapter,让它实现Filterable接口,重写其中的getFilter(),如果你参照ArrayAdaper源码的…
[ ViewPager ] ViewPager 如其名所述,是负责翻页的一个 View.准确说是一个 ViewGroup,包含多个 View 页,在手指横向滑动屏幕时,其负责对 View 进行切换.为了生成这些 View 页,需要提供一个 PagerAdapter 来进行和数据绑定以及生成最终的 View 页. setAdapter() ViewPager 通过 setAdapter() 来建立与 PagerAdapter 的联系.这个联系是双向的,一方面,ViewPager 会拥有 Pager…
忽然,发现,网上的公开资料都是教你怎么继承一个baseadapter,然后重写那几个方法,再调用相关view的 setAdpater()方法, 接着,你的item 就显示在手机屏幕上了.很少有人关注android adpater模式机制的实现原理,比较深入的也不过是说说adapter getview()中的回收情况.今天把相关的源码看了一遍,把自己的理解记录下来. AdpaterView 概览 AdpaterView api手册的说明:An AdapterView is a view whose…
国庆回了趟家,昨天真不想走,离家近的感觉太好.唉,不扯这些,说说今天的正事吧. 上篇博客中介绍了自定义AutoCompleteTextView ,但是用到了一个很蹩脚的技术,就是我们事先把每个汉字的拼音当作一个字段输入进去了,在实际的开发中肯定不会这样做,我们要通过代码自动生成汉字的拼音,就像我们的手机通讯录,比如我们要查找"张三"这个人,我们只需要输入"zs"."cs"或者"zhangsan"."changsan&…
AutoCompleteTextView,很多人都用过,有些情况下使用Google提供的ArrayAdapter作为适配器就可以完成需求,但是在实际开发中,我们经常需要开发自定义适配器来完成开发工作. 今天就来看看怎么自定义这样一个AutoCompleteTextView. 假设我们有一个Book类,Book有四个属性,id,name,author,price,pinyin,我希望在AutoCompleteTextView中无论输入什么字符,都和这五个属性进行匹配,只要有一个匹配上就将该项数据显…
网上有不少教程,那个提示框字符集都是事先写好的,例如用一个String[] 数组去包含了这些数据,但是,我们也可以吧用户输入的作为历史记录保存       下面先上我写的代码:import android.app.Activity; import android.content.SharedPreferences; import android.os.Bundle; import android.util.Log; import android.view.View; import android…
ListView是Android开发中最常用的组件之一.本文将重点说明如何正确使用ListView,以及使用过程中可能遇到的问题. ListView开发模块 图片缓存 可能遇到的问题 一.ListView开发模块 从项目实践的角度来看,ListView适合“自底向上”的开发模式,即从每个条目的显示组件,到对其进行控制的数据结构,最后通过Activity等进行使用.主要包括以下模块: 1.首先是item组件,即用于每项布局输出的xml文件.Android SDK中有simple_list_item…
在一个 Android 应用中,我使用 FragmentPagerAdapter 来处理多 Fragment 页面的横向滑动.不过我碰到了一个问题,即当 Fragment 对应的数据集发生改变时,我希望能够通过调用 mAdapter.notifyDataSetChanged() 来触发 Fragment 页面使用新的数据调整或重新生成其内容,可是当我调用 notifyDataSetChanged() 后,发现什么都没发生. 搜索之后发现不止我一个人碰到这个问题,大家给出的解决办法五花八门,有些确…