首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏渔夫

    优化使用BaseAdapter

    本节引言: 上一节中我们学习了如何来使用一个ListView以及自定义一个简单的BaseAdapter,我们从代码中可以看出比较重要的两个方法:getCount()和getView(),界面上有多少列就会调用多少次 所以学习ListView的优化很重要,而本节针对的是BaseAdapter的优化,优化的两点有,复用convertView 以及使用ViewHolder重用组件,不用每次都findViewById,我们具体通过代码来体会吧 而为何将ViewHolder设置为静态类的原因可以用如下B神的话来描述: 没错就是这么简单,你以后BaseAdapter照着这个模板写就对了,哈哈,另外这个修饰ViewHolder的 static,关于是否定义成静态 ——Berial(B神)原话~ ---- 本节小结: 好的,关于BaseAdapter的优化大概就上述的两种,非常简单,复用ConvertView以及自定义ViewHolder 减少findViewById ()的调用如果你有其他关于BaseAdapter优化的建议欢迎提出,谢谢

    72510发布于 2020-02-17
  • 来自专栏全栈程序员必看

    BaseAdapter的notifyDataSetChanged方法

    都用过 BaseAdapter的notifyDataSetChanged()方法,用法很简单,当BaseAdapter的数据更新了,需要更改显示,这时候就要调用notifyDataSetChanged( 那么BaseAdapter又是怎么一回事呢? 细心的同学可能会发现,在BaseAdapter中以notify开头的函数有四个,其实都是跟通知有关的,但是前两个是Object函数中实现的,用于线程的锁相关的。我们只关心后两个。 值得一提的是,这个函数在Adapter类中并不存在,是baseAdapter中才出现的。 而这两个函数的实现确实在BaseAdapter中,BaseAdapter同时实现了ListAdapter和SpinnerAdapter接口,所以大家通常情况下只要使用baseAdapter就行了,在BaseAdapter

    1.5K30编辑于 2022-09-12
  • 来自专栏我的博客

    BaseAdapter简单用法

    BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类 例子:自定义列表适配器 MyListAdapter.java代码 package com.example.baseadapter; import java.util.List; import java.util.Map android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter import android.widget.ImageView; import android.widget.TextView; public class MyListAdapter extends BaseAdapter listdata.get(position).get("icon").toString())); return v; } } BaseActivity.java代码 package com.example.baseadapter

    58440发布于 2018-05-08
  • 来自专栏分享达人秀

    自定义BaseAdapter

    这时候最方便的方法就是使用灵活的适配器BaseAdapter了。 一、使用BaseAdapter BaseAdapter是Android应用程序中经常用到的基础数据适配器的基类,它实现了Adapter接口。 由于BaseAdapter是一个抽象类,所以使用BaseAdapter时必须有一个类继承它,并实现它的方法。BaseAdapter的灵活性就在其要重写的很多方法,常会重写的几个方法如下。 二、示例 接下来通过一个示例程序来学习如何自定义BaseAdapter创建ListView。 接下来为ListView提供Adapter,使用自定义的BaseAdapter决定ListView所要显示的列表项。

    1.1K80发布于 2018-02-02
  • 来自专栏pangguoming

    android AutoCompleteTextView 自定义BaseAdapter

    网上好多例子都是简单使用 ArrayAdapter 来实现的,界面比较简单,实际项目中用处不大;自己研究了一番,自定义Adapter 继承BaseAdapter 并实现Filterable 接口 实现了上述功能 android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter android.widget.TextView; import com.example.actv.entity.PhoneContact; public class PhoneAdapter extends BaseAdapter

    1.7K60发布于 2018-03-07
  • 来自专栏Linux内核深入分析

    Android UI学习之ListView(使用BaseAdapter

    findViewById(R.id.lv); //设置适配器 listView.setAdapter(new MyAdapter()); } //定义MyAdapter继承BaseAdapter class MyAdapter extends BaseAdapter { @Override public int getCount() { //返回显示元素的个数

    71500编辑于 2022-05-08
  • 来自专栏刘晓杰

    listview过滤item(基于ArrayAdapter和BaseAdapter

    afterTextChanged(Editable s) { } }); 但是很多时候我们不可能用ArrayAdapter这么简单的适配器,更多的时候是要继承BaseAdapter 2.基于BaseAdapter的过滤 网上其实也有相关的解决方案,但是只告诉你怎么做,却没告诉你原理。 那么arrayadapter的源码也基本看懂,那么接下来我们也来自己做一个 class MyAdapter extends BaseAdapter { private MyFilter

    84020发布于 2019-02-21
  • 来自专栏渔夫

    Andorid-ListView简单使用以及BaseAdapter入门

    1.自定义BaseAdapter,然后绑定ListView的最简单例子 先看看我们要实现的效果图: ? BaseAdapter的编写~ 补充:如何重写BaseAdapter  首先学习Android还是秉持从先会使用SDK提供的代码框架开始,掌握了方法的使用,如果有需要再去针对于某一个框架实现要点学习源码方面的知识 对于一个BaseAdapter的子类来说,我们需要重写BaseAdapter中的几个抽象方法,但是抽象方法是被如何调用的,我们在此不妨先不去深究,只需知道被重写的方法是用于何种目的,我们只需秉持:“调用逻辑是由组件负责 事实上没有报,这是因为BaseAdapter方法并没有内部调用此方法,此方法修饰为public就是为了方便程序员进行调用,而BaseAdapter内部早就集成了访问列表元素的方法。 BaseAdapter内部为何使用LinkedList而不是其他数据结构?

    1.8K20发布于 2020-02-19
  • 来自专栏肖蕾的博客

    自定义BaseAdapter完美解决ListView异常:java.lang.IllegalStateException这是代码使用方法原理另外

    > * 传入的数据类型 * @param <viewHolder> * ViewHoler的类型 */ public abstract class BaseAdapter <DataType, viewHolder extends BaseAdapter.Holder> extends android.widget.BaseAdapter { /** * List<DataType> list = new ArrayList<DataType>(); private List<DataType> outer_list; public BaseAdapter

    69780发布于 2018-06-28
  • 来自专栏Android-薛之涛

    Android-ViewPager2

    image.png Adapter:注意RecyclerView.Adapter替换了原来的 PagerAdapter public class BaseAdapter extends RecyclerView.Adapter <BaseAdapter.BaseViewHolder>{ LinkedList<String> datas; public BaseAdapter(LinkedList<String> initViewPager(); } /** * 初始化ViewPager */ private void initViewPager() { BaseAdapter baseAdapter =new BaseAdapter(datas); vpBase.setAdapter(baseAdapter); //禁止滚动true为可以滑动

    1.8K20发布于 2019-12-02
  • 来自专栏cwl_Java

    速读原著-Android应用开发入门教程(网格(Grid)视图组)

    在本示例程序中,在布局文件中定义了 GridView,在 Java 代码中设置一个 BaseAdapter 作为 GridView 中的数据。 为了实现 GridView 的效果,需要构建一个 BaseAdapter,也就是 android.widget.BaseAdapter。 这个类表示了 Grid中的所包含的内容,GridView 的实现如下所示: public class AppsAdapter extends BaseAdapter { public AppsAdapter findViewById(R.id.myGrid); g.setAdapter(new ImageAdapter(this)); } } 这里定义的 ImageAdapter 继承了 BaseAdapter ,内容如下所示: public class ImageAdapter extends BaseAdapter { public ImageAdapter(Context c) {

    98420发布于 2020-02-13
  • 来自专栏技术之路

    android ListView自定义适配器实现

    android 自定义适配器 自定义适配器实现步骤 一,继承BaseAdapter 二,添加数据集合和反射器实现构造器和setter方法 三,实现getCount,getItem,getItemId 方法 四,实现getView方法 一,继承BaseAdapter 首先我们创建一个java class ,习惯命名为MyAdapter,让他继承BaseAdapter,并重写他的方法 public class MainAdapter extends BaseAdapter { @Override public int getCount() {//获得ListView总行数

    45710编辑于 2024-04-23
  • 来自专栏老欧说安卓

    Kotlin入门(22)适配器的简单优化

    ListView、GridView等等),Android提供了五花八门的适配器用于组装某个规格的数据,常见的适配器有:数组适配器ArrayAdapter、简单适配器SimpleAdapter、基本适配器BaseAdapter 到了列表视图ListView这里,与之搭档的一般是基本适配器BaseAdapter,这个BaseAdapter更不简单,基于它的列表适配器得重写好几个方法,还有那个想让初学者撞墙的ViewHolder。 总之,每当要实现类似新闻列表、商品列表之类的页面,一想到这个难缠的BaseAdapter,心里便发怵。譬如下图所示的六大行星的说明列表,左侧是图标,右边为文字说明,很普通的一个页面。 ? 可是这个行星列表页面,倘若使用Java编码,就得书写下面一大段长长的代码: public class PlanetJavaAdapter extends BaseAdapter  {     private 至此基于BaseAdapter的Kotlin列表适配器告一段落,上述的适配器代码模版,同时适用于列表视图ListView与网格视图GridView。 点此查看Kotlin入门教程的完整目录

    1.6K10发布于 2019-01-18
  • 来自专栏james大数据架构

    画廊视图Gallery

    android.widget.AdapterView; 12 import android.widget.AdapterView.OnItemSelectedListener; 13 import android.widget.BaseAdapter imgswi.setOutAnimation(AnimationUtils.loadAnimation(this,android.R.anim.fade_out)); 49 //创建一个BaseAdapter 对象,负责提供Gallery显示每张图片 50 BaseAdapter adapter=new BaseAdapter() { 51 52

    1.2K50发布于 2018-01-22
  • 来自专栏Android知识分享

    Carson带你学Android:全面解析列表ListView与AdapterView

    扩展BaseAdapter可以对各个列表项进行最大程度的定制。 6. 扩展BaseAdapter可以对各个列表项进行最大程度的定制 使用步骤: 定义主xml布局 根据需要定义ListView每行所实现的xml布局 定义一个Adapter类继承BaseAdapter,重写里面的方法 先定义一个Adapter类继承BaseAdapter,并重写里面的方法 使用BaseAdapter必须写一个类继承它,同时BaseAdapter是一个抽象类,继承它必须实现它的方法。 class MyAdapter extends BaseAdapter { private LayoutInflater mInflater;//得到一个LayoutInfalter对象用来导入布局 里必须要重写的4个方法 BaseAdapter的灵活性就在于它要重写很多方法,其中最重要的即为getView()方法。

    1.8K10编辑于 2022-03-24
  • 来自专栏拭心的安卓进阶之路

    最熟悉的陌生人:ListView 中的观察者模式

    1.首先我们跟进去看下 notifyDataSetChanged() 源码,进入了系统的 BaseAdapter: /** * Notifies the attached observers 2.在 BaseAdapter 中我们可以看到这几个方法: public abstract class BaseAdapter implements ListAdapter, SpinnerAdapter DataSetObservable(); public boolean hasStableIds() { return false; } /** * BaseAdapter void notifyDataSetInvalidated() { mDataSetObservable.notifyInvalidated(); } //省略无关代码 } BaseAdapter mItemCount = getAdapter().getCount(); // 监测是否有数据之前不可用、现在可用 // 由于 BaseAdapter.hasStableIds

    1.1K100发布于 2018-01-05
  • 来自专栏分享达人秀

    ListView优化和列表首尾使用

    一、使用convertView 前面讲的自定义ArrayAdapter和自定义BaseAdapter,都会重写getView()方法,虽然可以正常使用,但其实效率非常低。 接下来就在“自定义BaseAdapter”的基础上来开始优化,除了MyBaseAdapter类的getView()方法代码会发生改变,其他不变。 * * @创建者 鑫鱻 * @描述 Android零基础入门到精通系列教程,欢迎关注微信公众号ShareExpert */ public class MyBaseAdapter extends BaseAdapter 接下来继续在“自定义BaseAdapter”的基础上来开始优化,除了MyBaseAdapter类中增加一个持有者类和修改getView()方法代码,其他不变。 仍然在“自定义BaseAdapter”的基础上来完成。 首先设计一个ListView列表头布局list_headview_layout.xml,主要是一个搜索框,代码如下: <?

    2.1K80发布于 2018-02-02
  • 来自专栏陶士涵的菜地

    [android] listview入门

    ListView,参数是一个ListAdapter接口类型,我们要实现这个接口,把实现类对象传进去,定义一个私有的内部类实现ListAdapter,这时会要求实现几十个方法,太多了,系统为我们提供了一个实现类BaseAdapter ,默认的实现类大部分都是以BaseXxx,SimpleXxx,DefaultXxx开头 BaseAdapter是一个抽象类,要实现他的抽象方法,内部类继承BaseAdapter实现以下方法 getCount import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter persons=dao.select(); lv.setAdapter(new MyAdapter()); } private class MyAdapter extends BaseAdapter

    1.2K30发布于 2019-09-10
  • 来自专栏风吹杨柳

    Android设计模式应用---适配器模式

    适配器让原本接口不兼容的类可以合作无间 在Android便充分利用了适配器来实现view和数据的联系,如:ListView和BaseAdapter。 这里面BaseAdapter就是翻译官,view是中国人,数据是美国佬,你可以这么理解了,哈哈 通过adapter把数据显示在view上,这就是他的作用 适配器将不同的接口整合在一起,在baseAdapter public class Adapter implements Targetable{ private Source s; } 这种实现方式就是适配器拥有对象,调用对象的方法就可以了,在android中BaseAdapter

    58920发布于 2019-07-08
  • 来自专栏Felix的技术分享

    滑动卡片式效果

    ; private long mDuration = 400; private long mDelay = 30; public CardsAnimationAdapter(BaseAdapter baseAdapter) { super(baseAdapter); } @Override protected long getAnimationDelayMillis

    2.8K40发布于 2018-06-08
领券