adapter

Android开发:java.lang.IllegalStateException报错

余生长醉 提交于 2020-02-27 07:05:33
常见于ListView列表刷新数据时,更改UI。 LOG: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread。 DDMS中的log无法定位到准确的出错位置。检查错误可从以下几点入手: 1、检查Thread,确定没有在Background thread中直接调用adapter,如果有,请移除相关代码到Handler中处理; 2、尽量将数据放在adapter类中管理,不需要的时候清除信息(勤写clear()),及时用notifyDataSetChanged()刷新; 3、在Activity或者Fragment合适的位置(onPause/onStop)要及时检查thread,有adapter数据处理相关的应马上停止; 4、这个错误经常出现在Activity休眠起来之后,主要还是使用adapter不太小心造成的。如果实在找不到原因,在onPause()函数中停止所有的background thread,并且在onResume(

The content of the adapter has changed but ListView did not receive a notification.

拟墨画扇 提交于 2020-02-22 15:13:50
在Android编程中使用Adapter时,【偶尔】会出现如下错误: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread。 DDMS中的log也无法定位到准确的出错位置。检查错误可以从下面几点入手: 1、检查Thread,确定没有在Background thread中直接调用adapter,如果有,请移除相关代码到Handler中处理; 2、尽量将数据放在adapter类中管理,不需要的时候清除信息(勤写clear()),及时用notifyDataSetChanged()刷新; 3、在Activity或者Fragment合适的位置(onPause/onStop)要及时检查thread,有adapter数据处理相关的应马上停止; 4、这个错误经常出现在Activity休眠起来之后,主要还是使用adapter不太小心造成的。如果实在找不到原因,在onPause()函数中停止所有的background thread,并且在onResume(

事件适配器类 java

柔情痞子 提交于 2020-02-19 14:01:07
Java语言为一些Listener接口提供了适配器(Adapter)类。可以通过继承事件所对应的Adapter类,重写需要的方法,无关方法不用实现。    java.awt.event包中定义的事件适配器类包括以下几个:   1、ComponentAdapter,构件适配器。   2、ContainerAdapter,容器适配器。   3、FocusAdapter,焦点适配器。   4、KeyAdapter,键盘适配器。   5、MouseMotionAdapter,鼠标运动适配器。   6、MouseAdapter,鼠标适配器。   7、WindowAdapter,窗口适配器。 来源: https://www.cnblogs.com/nanshouyong326/archive/2009/06/04/1496151.html

Android Studio 学习笔记(四):Adapter和RecyclerView说明

醉酒当歌 提交于 2020-02-18 21:36:40
在现版本中,滚动控件有多种,而相比于ListView,GridView,RecyclerView的用途更广,因此将前两者作为Adapter适配器的引入,再对RecyclerView进行简单讲解。 MVC & Adapter 为了方便理解,这里介绍一下Android应用设计的基础,也就是MVC架构,如图。 控制器(Controller)- 可看作一个中间桥梁,响应来自View的用户交互,通过对View设定的事件逻辑修改Model,再回传实现View的数据刷新。 视图(View) - 用户看到的图形界面,由界面设计人员负责。 模型(Model) - 保存数据状态,其中由程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。 MVC架构:Model(数据)以Controller(控制器)设定的方式呈现在View(用户界面)中。 简而言之:Adapter在其中充当Controller(控制器)的角色,在其中设定每一个元素长什么样子,怎么排列各个元素的逻辑,再把包含代码逻辑的复杂数据按设定好的样式给View。其中自带的BaseAdapter用得最多。 常见用法是新建一个类继承自BaseAdapter,重写其中的方法并构造新的方法,结合ListView、GridView控件使用。 ListView和GridView的用法相似,只是功能不同

Fragment嵌套Fragment要用getChildFragmentManager

喜欢而已 提交于 2020-02-14 20:09:09
  Fragment嵌套Fragment要用getChildFragmentManager。   遇到一个问题,Fragment放ViewPager,ViewPager里面是fragment。第一次进入没问题,再次进入ViewPager的fragment时里面内容就没了,数据丢失。   用的FragmentPagerAdapter.打Log发现FragmentPagerAdapter的getItem也不会调用,一直找不出原因。翻网上的回复终于找到答案。   本来里面的fragment用的还是getFragmentManager,Fragment嵌套Fragment时,里面要用getChildFragmentManager。  FragmentManager childFragmentManager = getChildFragmentManager(); ViewPager_Adapter viewPager_adapter = new ViewPager_Adapter(childFragmentManager, fragments);    //FragmentPagerAdapter 来源: https://www.cnblogs.com/rewufu/p/4499949.html

常用网络命令(windows下)

时光怂恿深爱的人放手 提交于 2020-02-13 18:42:27
ping命令 特点: ping命令只有在安装了TCP/IP协议以后才可以使用 运行ping命令以后,在返回的黑屏幕窗口中会返回对方客户机的IP地址和表明ping通对方的时间,如果出现信息“Reply from ...”,则说明能与对方连通;如果出现信息“Request timeout ...”,则说明不能与对方连通 按照缺省设置,每发出一个ping命令就向对方发送4个网间控制报文协议ICMP的回送请求,如果网络正常,发送方应该得到4个回送的应答 作用: 利用ping命令可以排除网卡,Modem,电缆和路由器等存在的故障 ping命令是用于检测网络连接性,可到达性和名称解析等疑难问题的TCP/IP 命令.根据返回的信息,可以推断TCP/IP参数的设置是否正确以及TCP/IP协议运行是否正常. ping命令发出后得到以毫秒或者毫微秒为单位的应答时间,这个时间越短就表示数据路由畅通;反之则说明网络连接不够畅通 ping命令显示的TTL(Time To Live 存在时间)值,可以推算出数据包通过了多少个路由器.因此用ping命令来测试两台计算机是否连通非常有效 如果ping不成功,则可以认为故障出现在以下几个方面:网线、网卡、IP地址 格式: ping [-t] [-a] [-n Count] [-l Size] [-f] [-i TTL] [-v TOS] [-r Count] [-s

RecycleView和Adapter的基本使用

我的未来我决定 提交于 2020-02-12 13:29:56
1.创建布局文件,word_fragment用来放Recycle,word_fragment_grad_cell用来放小单元 word_fragment布局: word_fragment_grad_cell布局:(卡片布局) 2.创建适配器wordFragmentAdapter类 package com . example . ngsl . wordFragment import android . content . Intent import android . net . Uri import android . view . LayoutInflater import android . view . View import android . view . ViewGroup import androidx . recyclerview . widget . DiffUtil import androidx . recyclerview . widget . ListAdapter import androidx . recyclerview . widget . RecyclerView import com . example . ngsl . R import com . example . ngsl . room . Word import kotlinx .

适配器模式小试

蓝咒 提交于 2020-02-10 09:12:56
一、介绍 我们看一下《研磨设计模式》中的定义: 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 适配器模式的本质是——转换匹配,复用功能。 怎么理解呢?就是说,新的接口需要实现的功能,旧的接口现在都有,问题是,怎么把旧的接口的实现类拿去实现新的接口。 方法很简单,那就是把旧接口的实现类放到适配器中,可以作为成员变量,也可以作为局部变量,只要能使用都可以。然后适配器实现新的接口,在适配器@Overide的方法中,调用旧接口的实现类去实现功能。 二、结构 1、Client——调用者 2、Target——目标接口,需要适配的接口 3、Adapter——适配器,实现目标接口 4、Adaptee——已经存在的接口,能满足需求,但是和目标接口不一致。适配器依赖它,来实现目标接口的功能。 三、我的实现 1、首先我们定义一个接口PastInterface,如下: package adapter; public interface PastInterface { public void past1(); public void past2(); } 2、一个简单是实现类,如下: package adapter; public class PastImpl implements PastInterface{ PastImpl(){

适配器模式/adapter模式/结构型模式

a 夏天 提交于 2020-02-10 05:12:41
定义 将类的接口转化为客户端希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的类可以一起工作,别名Wrapper(包装器)。 适配器模式,最终改变一个已有对象的接口。 使用场景 当有那么个类,那么个对象,却不是我想要的接口类型,肿么办?不要方,用适配器模式。 java三要素:Target(目标)+Adaptee(待适配者)+Adapter(适配器) 类的适配器,实现Target接口,继承Adaptee类,把待适配类的API转化为目标接口的API。 对象适配器,实现Target接口,持有Adaptee对象,把待适配类的API转化为目标接口的API。 缺省适配器,abstract适配器(Adapter)实现Target接口,任意实现Adapter抽象类的均是Target接口类型,而不用实现全部Target接口方法。 个人理解 好比一个多用插排,将各种插头(Adaptee)通过插排(Adapter)适配到标准插口(Target)。 代码示例 interface Target { void targetMethod1(); void targetMethod2(); } class Adaptee { public void targetMethod1() { } } //类的适配器(继承,涉及类之间的关系,所以是类的适配器) //java中没有多继承,使用单继承+实现接口

设计模式学习笔记十一:适配器模式(Adapter Pattern)

社会主义新天地 提交于 2020-02-10 04:46:43
1.概述 在软件开发中,我们经常会遇到系统间集成,在系统集成时,最常见的问题就是系统间的接口不一致。很多能够满足功能的系统模块,由于接口不一致,导致无法使用。例如,常用的媒体播放器是MS Media player和RealPlayer,他们的文件结构和软件接口完全不同,前者支持WMF格式的音频和视频,后者支持RM格式的音频和视频。如果我们希望自己的软件能够播放这两种播放器播放相应格式的音频和视频,我们该怎么办呢?一切从头开始,重写一个支持这两种格式的播放软件?呵呵,你要不觉得累你就重写了,呵呵。 适配器模式(Adapter): 将一个的接口转化成客户希望的另外一个接口.Adapter模式使得原本由于接口不兼容而不能一起工作的的那些类可以一起工作。 适配器模式的意图就是使接口不兼容的类能够一起工作,通常情况下,这些接口不兼容的类在逻辑上的功能是一致或相似的。在开发中,系统的数据和行为都正确,但接口不符时,我们就应该考虑用适配器模式,目的就在于使控制范围之外的一个原有对象与某个接口匹配。适配器模式主要用于希望服用一些现有的类,但是接口又与环境要求不一致的情况。 适配器有类适配器和对象适配器两种类型,二者的意图相同,只是实现的方法和适用的情况不同。类适配器采用继承来实现,对象适配器则采用组合的方法来实现。 类适配器:类适配器通过多重继承对一个接口与另一个接口进行匹配,其结构如下图所示: