深入Android- AdapterView与ListView

Windows 10错误代码解析与系统故障排除指南 操作系统错误代码是系统运行状态的直接反馈,Windows系统通过特定编码机制将故障信息转化为可识别的错误代码。从技术原理看,这些代码通常对应特定的异常处理流程,包括内存管理、驱动兼容性、文件系统等核心模块。理解错误代码对于系统维护具有重要价值,能快速定位问题根源,提高故障排除效率。在实际应用场景中,蓝屏错误(如0x0000007B)、系统升级失败(如0x80070002)和启动故障是最常见的三类问题。通过分析dump文件、使用WinDbg工具和系统内置诊断功能,可以有效解决大部分系统异常。特别是对于蓝屏错误 阅读详情



一,前言


    ListView和GridView作为一个常用的控件,基本上每一个app都要用到,本文透过相关资料,试图为大家解开Android开发中的那些疑问,同时也探讨Android部分源代码的本质。

  本文引用的资料,由于时间关系,不多做翻译。

  阅读本文前,我认为读者应该具备基本的Android相关知识,如Activity/View的基本原理及使用。


二,相关知识储备


系统框架


      
      从Android的系统框架结构上看,我们这次要了解的是处于Application Framework层的View部分.


类层次关系


从类的层次关系上可以明显看到,ViewGroup是View的子类,而ListView和GridView则分别继承自AdapterView.

ViewGroup:

http://developer.android.com/reference/android/view/ViewGroup.html

A ViewGroup is a special view that can contain other views (called children.) The view group is the base class for layouts and views containers. This class also defines the ViewGroup.LayoutParams class which serves as the base class for layouts parameters.

Also see ViewGroup.LayoutParams for layout attributes.

顾名思义,ViewGroup是一个或者多个View的组合,它提供Layout服务,把多个View组合成一个复杂视图。

ViewGroup里面有一个重要的概念:Layout,定义其子视图的Layout。

      

Layout:

  http://developer.android.com/guide/topics/ui/declaring-layout.html

                   

   A layout defines the visual structure for a user interface, such as the UI for an activity or app widget. You can declare a    layout in two ways:

   Declare UI elements in XML . Android provides a straightforward XML vocabulary that corresponds to the View classes and    subclasses, such as those for widgets and layouts.
  Instantiate layout elements at runtime . Your application can create View and ViewGroup objects (and manipulate their      properties) programmatically.

Layout是一个定义UI控件的可视结构体,可以用XML声明或运行时实例化,下图展示了Layout和View之间的关系。

 以下以最常用的LinearLayout作例子,描述Layout的本质,其它几种Layout本质也是一样,需要了解的朋友参阅相关资料即可:

 http://developer.android.com/guide/topics/ui/layout/linear.html

 LinearLayout is a view group that aligns all children in a single direction, vertically or horizontally. You can specify the layout direction with the android:orientation attribute.

请注意其描述中的:single direction,这个就是LinearLayout所遵循的规则和限制。

再对比Linear Layout和Relative Layout的差异,本质上是一样的,只是应用的场景不同。

根据上面的资料,我们不难得出ViewGroup和View之间的关系:

http://www.cnblogs.com/duguguiyu/archive/2010/03/27/1698515.html

        通过上面的一系列的分析,我们基本知道了有关于Android中一个View的来龙去脉,接下来我们会对AdapterView和ListView进行一步的讲解。
        继承层次:
        
        ListView继承自AdapterView的子类AbsListView,而且ListView跟GridView是兄弟关系。

         AdapterView:

          

        AdapterView是一个以具体的Adapter驱动的视图,如何去理解这句话:

1,不管ListView,还是GridView,还是Gallery,它的本质是存储着一分表格形式的数据。而这份数据如何进行展现,根据指定的Adapter,它会呈现成列表,表格或图库的模式。

2,AdapterView有具体处理用户输入的能力,所以相应的它可以设置listener。

        
          ListView:

            

         
        从上面的分析中,继续往下解剖之后,剩下的事情很简单,就是ListView是一个使用了某一种Adapter的线性列表视图,只要指定具体的Adapter(如ArrayAdapter),就呈现出具体的样式。
        看到这里,我相信大家会更明白,为什么ListView需要绑定一个Adapter;以及往后如果需要对类似的View进行扩展的时候,应该如何做。

        引入childView:

        由于每一个Layout,本身就是View的子类,所以,当我们需要指定自已的View,可以很简单的在xml里面指定一个layout,然后find它,把它转换成layout,然后把自定义的view加到layout里面,范例代码如下:


        public View getView(int position, View convertView, ViewGroup parent) {
              LayoutInflater inflater = (LayoutInflater) context
                                .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              View rowView = inflater.inflate(R.layout.list_analystics, parent, false);
              
              DemoStatistics statistics = new DemoStatistics();
              View subView = statistics.setData(context);
              LinearLayout ly = (LinearLayout) rowView.findViewById(R.id.statistics);
              ly.addView(subView);
              
              return rowView;
        }

        
相关的源代码在线查看资源有:
http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/1.6_r2/android/widget/AdapterView.java?av=f

本文参考了大量的网上资料,因为比较多,不一一列出。



Qt 调用YOLO模型(代码) 本文介绍了如何在 Qt C++ 环境中集成 YOLO 模型进行目标检测,包括模型封装、界面设计和实时处理等关键步骤。通过这种方法,你可以快速开发出具有目标检测功能的 Qt 应用程序,应用于监控系统、机器人视觉、图像分析等多个领域。 阅读详情

相关推荐

Linux系统监控实战:夜莺监控+categraf采集器配置全流程(附常见问题排查)

本文详细介绍了在Linux系统中使用夜莺监控和categraf采集器进行系统监控的全流程配置,包括环境准备、核心配置文件(如config.toml和procstat.toml)详解、服务集成与验证、高级监控配置实战以及常见问题排查。通过实战案例和优化建议,帮助运维人员快速构建高效的监控体系。

xray4的博客 736

AdapterView和Adapter及其子类的使用

Android 适配器使用

qq_38056514的博客 1028

Netapp FAS2750热备盘替换失败问题分析与解决

本文深入分析了Netapp FAS2750存储系统中热备盘替换失败的故障现象,揭示了磁盘分区属主不匹配导致数据同步无法启动的根本原因。通过详细的排查步骤和解决方案,帮助运维人员快速恢复aggr状态,并提供了长期预防措施和最佳实践建议,确保存储系统的高可用性。

weixin_33737774的博客 399

android中view组件有哪些,Android:ListView与AdapterView全面解析

前言ListView在Android开发中十分常见今天,我将为大家带来ListView与AdapterView全面解析,含其特点、工作原理等,希望你们会喜欢。目录示意图1. 简介Android中的一种列表视图组件继承自AdapterView抽象类,类图关系如下示意图2. 作用集合多个 “项”(称为:Item) & 以列表的形式 展示示意图3. 工作原理3.1 本质原理ListView仅作为...

weixin_39633774的博客 460

【ArcGIS】ArcMap中北京1954坐标系转WGS84的实战技巧与参数选择

本文详细解析了在ArcMap中将北京1954坐标系数据转换为WGS84坐标系的完整流程与核心技巧。针对常见的坐标偏移问题,文章首先强调了数据“归位”的重要性,并提供了处理假东、假北值的具体操作步骤。随后,重点阐述了地理变换参数(如Beijing_1954_To_WGS_1984_2)的选择逻辑及其对转换精度的决定性影响,并结合案例说明了参数选择、中央经线确认及结果验证等关键环节,旨在帮助用户高效、准确地完成坐标转换。

f6g7h8i9j的博客 330

自定义串口通讯协议

自定义串口通讯协议的实现方法

qq_44826038的博客 2172

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

目录AdapterView简介AdapterView本身是一个抽象类,AdapterView及其子类的继承关系如下图: 特征: AdapterView继承自ViewGroup,本质是个容器 AdapterView可以包含多个“列表项”,并将这多个列表项以合适的形式展示 AdapterView显示的列表项内容由Adapter提供 它派生的子类在用法上也基本相似,只是在显示上有一定区别,因此把他们也归

Carson带你学Android 1万+

一文搞懂蚁群算法Ant Colony Optimization(ACO)!!!(灵感起源+数学原理+代码实现+实战应用)

本文系统介绍了蚁群算法的原理与实现。首先从蚂蚁觅食行为出发,阐释了信息素正反馈机制如何引导群体找到最短路径。随后详细解析了算法的数学模型,包括状态转移规则和信息素更新机制。通过MATLAB代码演示了算法在旅行商问题(TSP)中的应用,展示了路径构建和优化的完整流程。最后讨论了算法的优势、局限性和实际应用场景。蚁群算法通过模拟生物智能,为解决复杂优化问题提供了一种高效方法,其核心在于信息素的正反馈机制与随机探索的平衡。

qq_42212808的博客 887

UI组件之AdapterView及其子类(一)三种Adapter适配器填充ListView

AdapterView的内容一般是包含多项相同格式资源的列表,常用的有5种AdapterView的子类: (1)ListView:简单的列表 (2)Spinner:下拉列表,给用户提供选择 (3)Gallery:缩略图,已经被水平的ScrollView和ViewPicker取代,但也还算常用,是一个可以把子项以中心锁定,水平滚动的列表 (4)GridView:网格图,以表格形式显示资源,可

tuke_tuke的博客 7888

[Dify实战] 品牌舆情速览:多渠道抓取、聚类情绪、生成日报-带绑定资源

摘要: 品牌舆情监测面临多渠道信息分散、手工处理效率低的痛点。Dify舆情速览助手通过自动化流程(数据抓取→情绪聚类→日报生成)帮助快速识别热点与风险。方案核心包括: 结构化处理:按情绪(正/中/负)聚类,分级标注风险事件; 日报输出:含热点摘要、趋势分析及处置建议(动作+团队+时间窗口); 质量控制:数据去噪、黑名单过滤,结合人工复核确保合规性。 落地需明确数据源分级(如权威媒体优先)、设置情绪阈值,并建立"发现-响应-复盘"闭环机制,提升舆情应对效率。 (字数:150)

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 297

UCIE Specification详解(十一)

Electrical Layer (2D and 2.5D)以及UCIe-3D

Crazzy_M的博客 1194

UI组件之AdapterView及其子类关系,Adapter接口及其实现类关系

AdapterView本身是一个抽象基类,它派生的的子类在用法上十分相似。AdapterView直接派生的三个子类:AbsListView,AbsSpinner,AdapterViewAnimator,这三个子类依然是抽象的,实际应用中往往采用它们的子类。AdapterView 的子类是内容由 Adapter 来决定的视图类,就是说其实显示的组件。 AdapterView有如下特征: 1,

tuke_tuke的博客 3438

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Android开发:ListView、AdapterView、RecyclerView全面解析

目录ListView、AdapterView、RecyclerView全面解析.pngAdapterView简介AdapterView本身是一个抽象类,AdapterView及其子类的继承关系如下图:AdapterView及其子类的继承关系.png特征:AdapterView继承自ViewGroup,本质是个容器AdapterView可以包含多个“列表项”,并将这多个列表项以合适的形式展示Adap...

大灰狼的小绵羊哥哥的博客 869

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Android开发10.1:UI组件适配器AdapterView(创建ListView,Adapter接口)-更新20130912

@version:Android4.3 API18 @author:liuxinming 概述               AdapterView继承了ViewGroup,它的本质是容器               AdapterView 可以包含多个 “列表项”,并将多个“列表项”以合适的形式显示出来               AdapterView显示的多个“列表项”由Adapt

巴途Way,专注Go,PHP,C开发 3822

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

adapterview android,[Android]ListView+AdapterView

在设计ListView的时候,因为采用了ListView的单击与List中Button的混合事件监听方案,所以不得不自己重写一个AdapterView来重载Button的监听。自定义ListView的Adapter继承自BaseAdapter,其中有3个方法需要特别注意1、getView在这个方法中,完成自定义ListItem的绘制工作,还可以修改各种布局参数,当然Button的监听也需要在这里实...

weixin_42115074的博客 166

android ListView 及adapterView的使用

ListView是android常用的组件之一,经常会在滑动侧边栏,商品列表等。使用ListView一般有以下5种方式 使用资源数组 使用ArrayAdapter 使用SimpleAdapter 继承BaseAdapter 继承ListActivity 一.使用资源数组 这种方式非常简单,但是显示比较单一,只适合简单的业务需求。 使用方法: 1.在资源文件中定义数组 &...

大新工作室 208

Android 系统(188)---Android开发:ListView、AdapterView、RecyclerView全面解析

Android开发:ListView、AdapterView、RecyclerView全面解析目录ListView、AdapterView、RecyclerView全面解析.pngAdapterView简介AdapterView本身是一个抽象类,AdapterView及其子类的继承关系如下图:AdapterView及其子类的继承关系.png特征:AdapterView继承自ViewGroup,本质...

zhangbijun1230的专栏 460

Android快速入门之使用AdapterView展示不同风格的列表

在面向对象的程序设计中接触过MVC模式,其实现原理:数据模型M(Model)负责存放数据,通过控制器C(Controller)将数据显示到相应的试图上(View)。在Android中也有类似的控件,它不像之前的控件那样拖拽到界面上,而是通过适配器将某些样式的数据添加到其上使用,这样的控件就是AdapterView。

龙源IT 的博客 1120

android Adapter,AdapterView,AbsListView,ListView

ListView完全解析 ListView完全解析 Adapter分析 在android中,列表控件之前一直是ListView,现在是RecyclerView。 关于ListView, 关联的类(或接口)有Adapter,AdapterView,AbsListView,ListView。 首先看一下最简单的Adapter. Adapter分析 既然和Adapte...

Cat的专栏 527

Android用户界面 UI组件--AdapterView及其子类(一) ListView及各种Adapter详解

ListView就是列表组件,一般通过继承ListActivity使用系统提供的ListView. 所有的AdapterView组件都需要有一个对应的Adapter作为适配器来显示列表中元素的布局方式 见思维导图 AbsListView的常用XML属性: android:choiceMode 设置ListView的选择行为 none:不...

weixin_30706691的博客 256

Android:ListView与AdapterView全面解析

引自: https://www.jianshu.com/p/4e8e4fd13cf7 非常详细

weixin_42007220的博客 205

新人第一篇_android_开发ScrollView嵌套GridView、ListView等AdapterView控件时发生滑动冲突的解决方案

@TOC_android_开发ScrollView嵌套GridView、ListView等AdapterView控件时发生滑动冲突的解决方案 关键在于需要重写GridView的onMeasure()方法,直接上图: 第一步,新建一个继承GridView的MyGridView类,并重写onMeasure() 在xml文件中写GridView标签时,修改以下改动: 原来的是这样的 只需要把Grid...

理想万岁万万岁的博客 246

android onitemclick参数,android – 在OnitemClick()方法中,AdapterView <?>是什么意思?其中的其他参数有什么用?...

here。onItemClick(AdapterView parent,View view,int position,long id)parent The AdapterView where the click happened.view The view within the AdapterView that was clicked (this will be a view provided b...

weixin_42372731的博客 499

android 动态移除view,揭秘在ListView等AdapterView上动态添加删除项的陷阱

如何避开在ListView等AdapterView上动态添加删除项的陷阱,下面就为大家分享,具体内容如下首先,定义如下array资源,作为列表的加载内容:MyListViewJavaCC++PHP然后简单地写下布局文件,由于我需要不管列表有多长,始终在底部显示编辑框和按钮,所以将ListView中的layout_weight设为1。xmlns:android="http://schemas.and...

weixin_26716079的博客 439

AdapterView及其子类之一:基本原理(ListView、ListActivity类型)

参考《疯狂android讲义》2.5节 1、AdapterView一般用于显示列表项,其内容由Adapter提供。调用Adapter的setAdapter(Adapter)方法设置Adapter即可。 AdapterView继承自ViewGroup,它的本质是容器。 2、几个重点类的继承关系 (1)Adapter: java.lang.Object

jediael_lu的专栏 1751
上一篇: Android开发学习 之 四、Activity
下一篇: 天天读报-2012-10-21
WingSu
博客等级 码龄23年 1粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值