- 浏览: 439144 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
qja:
Iterator.remove()这个方法也会出错的。
java.util.ConcurrentModificationException 出现的原因和解决办法 -
angeli:
List<String> save = new A ...
java.util.ConcurrentModificationException 出现的原因和解决办法 -
大峰子:
灰常感谢 刚好碰到这个问题, 搜了好多都没找到解决方法
python学习笔记-Python交互模式下方向键出现乱码 -
anypwx:
牛哥,怎么找到的,解决了我的报错问题,谢谢
JSONObject NestableRuntimeException -
tp7300:
确实好很多了,谢谢博主。
Failed to install on device 'emulator-5554': timeout
在android开发中,listview是比较常用的一个组件,它以列表的形式显示数据。列表显示需要三个元素:
1、listview用来显示具体列表的view
2、XXAdapter适配器用来把具体的数据映射到listview
3、具体需要展示的数据,比如文字,图片,按钮等组件
listview的适配器类型主要分为三种:ArrayAdapter、SimpleAdapter、SimpleCursorAdapter。
ArrayAdapter比较简单,只能显示一行文字,SimpleAdapter扩充性很好,可以自己定义出很多种效果,SimpleCursorAdapter可以和数据库很好的结合,把数据库中的表的内容展示到列表上。
有些时候,由于我们需要展示的数据量很大,而且也需要美化显示的效果,这时我们就需要自定义一个适配器,只需继承BaseAdapter,实现它的四个方法。listview在开始绘制的时候,首先调用getCount()方法,得到需要绘制的item数量,再调用getView绘制每一个item,每调用一次getView都会实例化一个view对象,因此对于显示大量数据的时候,必须进行优化。下面是一个小例子,getView方法对listview进行了一定的优化,当listview的某一项被选择或者点击时,更换该项的背景图片。源码如下:
ListViewActivity.java
package com.alex.activity; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.WindowManager; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ListView; import android.widget.TextView; import android.widget.AdapterView.OnItemSelectedListener; public class ListViewActivity extends Activity { /** Called when the activity is first created. */ private List<Map<String, Object>> datas = null; //存放初始化数据 private ListView roomListView = null; //Button back; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //去除窗口的title区域 this.requestWindowFeature(Window.FEATURE_NO_TITLE); //全屏显示 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); this.setContentView(R.layout.listview); initDatas(); findViews(); } private void initDatas() { datas = new ArrayList<Map<String,Object>>(); for(int i=0;i<12;i++) { Map<String, Object> itemMap = new HashMap<String,Object>(); itemMap.put("data", "测试数据"+i); datas.add(itemMap); } } private void findViews() { roomListView = (ListView)findViewById(R.id.room_list); roomListView.setAdapter(new MyListViewAdapter(this)); roomListView.setVerticalScrollBarEnabled(true); //显示垂直滚动条 roomListView.setSelection(0); //默认选中第一项 } public class MyListViewAdapter extends BaseAdapter { private LayoutInflater mInflater; //作用:把xml布局文件实例化成View public MyListViewAdapter(Context context) { this.mInflater = LayoutInflater.from(context); } @Override public int getCount() { return datas.size(); } @Override public Object getItem(int position) { return null; } @Override public long getItemId(int position) { return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = null; if(convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.list_row, null);
convertView.setBackgroundResource(R.drawable.dtht_1);
holder.data = (TextView)convertView.findViewById(R.id.data);
convertView.setTag(holder);
}
else {
holder = (ViewHolder)convertView.getTag();
}
holder.data.setText(String.valueOf(datas.get(position).get("data")));
return convertView;
}
}
public final class ViewHolder {
TextView data;
}
}
listview.xml
<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/room_list" android:layout_width="fill_parent" android:layout_height="fill_parent" android:listSelector="@drawable/dtht_2" android:background="@drawable/dtht_1" android:cacheColorHint="#00000000" android:divider="#00000000" android:dividerHeight="1dip" /> </LinearLayout> </FrameLayout>
list_row.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:id="@+id/data" android:layout_width="fill_parent" android:layout_height="36dip" android:layout_alignParentLeft="true" android:gravity="center" android:textColor="#ffffff" /> </RelativeLayout>
效果图见附件
评论
2 楼
zhoujianghai
2010-11-18
时培峰 写道
好多冗余代码:o
,roomListView.setOnItemSelectedListener(...)这段代码可以去掉的
1 楼
时培峰
2010-11-18
好多冗余代码:o
发表评论
-
warning: libfmodex64.so, needed by ../../lib/linux/Debug/libcocosdenshion.so,
2012-03-13 01:20 2051linux环境下用cocos2d-x开发游戏时,遇到了 wa ... -
在工作线程中创建Toast
2011-10-14 18:11 3752在工作线程中创建Toast,代码如下: p ... -
GridView + ViewFlipper布局界面,模仿“机锋市场”
2011-10-09 18:22 2281源码在附件中,效果如图片 -
fedora14下连接android真机
2011-08-13 13:22 1420在fedora14下搭建好了andro ... -
fedora14下搭建Android开发环境
2011-07-12 23:59 2586一:下载linux版本的JDK,Eclipse,Andr ... -
简述android线程间消息处理机制(Looper、Handler和Message)
2011-06-17 21:51 7718作用:Android的线程间消息处理机制主要是用来处理主 ... -
Android中ImageButton实现“按下”效果
2011-06-16 12:26 7682使用Button的时候,实现“按下”的效果是很重要的,也 ... -
Android实现TCP与UDP传输
2011-05-21 14:50 5424关于TCP和UDP协议的描述,可参考http://zho ... -
android textview改变部分文字的颜色和string.xml中文字的替换
2011-05-18 18:49 17314一:TextView组件改变部分文字的颜色: Text ... -
AndroiManifest.xml文件中android属性
2011-05-16 11:59 1449android:allowTaskReparentin ... -
windows系统上安装与使用Android NDK r5
2011-01-26 13:17 11375windows系统上安装与使用Android NDK r ... -
android获取屏幕分辨率
2011-01-15 17:05 2134获取屏幕分辨率的代码: ... -
Android编译出现Multiple substitutions specified in non-positional format
2010-12-31 13:28 3945前段时间更新了ADT和Android SDK 2.3, ... -
TextView设置中文粗体
2010-12-30 13:25 5519在xml布局文件中设置android:textStyle=“b ... -
Failed to install on device 'emulator-5554': timeout
2010-12-20 10:41 6227Failed to install on device ... -
解决android logcat不打印信息
2010-11-30 19:06 7933用eclipse进行android开发中经常遇到logcat无 ... -
关于android设备的分辨率
2010-11-29 12:27 1995HVGA (Half-size VGA) 即VGA ... -
Toast的用法
2010-11-18 13:28 4618Toast是android中用来显示快速显示短信息的一种机制, ... -
activity切换特效(类似iphone的进入和退出时的效果)
2010-11-10 23:11 3922关于activity的切换,有很多挺好看的动画实现,最近在项目 ... -
美化listview时遇到的问题
2010-11-08 08:39 2559在android开发中,listview的默认背景颜 ...
相关推荐
然而,ListView控件默认的样式相对朴素,为了提升用户体验和界面美观度,开发者通常需要对其进行一定程度的自定义和美化。本主题将深入探讨如何实现“C# WinForm ListView控件美化”,包括重画列头、选中时的颜色...
总之,"超高速度显示最漂亮的ListView增强美化版(VB)"是VB开发中的一个实用工具,它通过视觉优化和性能提升,使得ListView成为了一个功能强大且美观的界面元素。如果你在VB项目中需要一个高效且易于定制的列表展示...
总的来说,Android ListView的边角圆角美化涉及到自定义布局、形状资源、适配器的使用以及一些细节的优化。通过这种方式,我们可以使ListView更加美观,提升应用的整体设计感。同时,也要注意性能问题,避免过度绘制...
- "listview美化"这个类文件可能是实现了ListView美化逻辑的C#代码,包含自定义绘制方法、颜色配置、鼠标事件处理等。 - 类文件通常包含构造函数,用于初始化控件的基本属性;可能还有`OnPaint`事件处理程序,用于...
在Windows Presentation Foundation (WPF) 中,ListView 是一个强大的控件,用于展示数据集合,并提供了多种自定义样式和布局选项,使得用户界面更加美观和功能丰富。本教程将深入探讨如何利用WPF ListView 创建漂亮...
在Windows Forms应用开发中,ListView控件是一种常用的数据展示组件,它可以用来显示一系列项,每项可以包含多个列。...记得在实际操作中,根据项目需求和用户反馈不断优化和调整,以达到最佳的美化效果。
总结,优化ListView的关键在于视图复用,同时合理处理点击事件,美化界面,并根据需要自定义对话框和输入方式。通过这些技巧,可以提升用户体验,降低应用的资源消耗。希望以上分享能对你的开发工作有所帮助。
ListView的简单美化是提升应用用户体验的关键步骤,这涉及到自定义适配器、视图复用以及视觉效果优化等多个方面。下面将详细介绍如何对ListView进行美化。 1. 自定义适配器:ListView的数据展示通常通过Adapter来...
ListView控件可以显示多列数据,并且具有多种视图模式,包括报告视图、小图标视图、大图标视图和详细信息视图。在这个特殊的案例中,我们讨论的是一个扩展的ListView控件,它结合了树结构和Checkbox选择框,为用户...
4. **数据加载优化**:由于ListView的滚动特性,我们通常采用“懒加载”策略,即只在需要时加载可见的数据项,以提高性能。这可以通过实现`ViewHolder`模式来实现,缓存复用ListView的子View,减少不必要的 ...
7. **样式和模板**:为了美化界面,可以自定义ListView的样式,包括ItemContainerStyle、HeaderStyle等,改变字体、颜色、背景等视觉元素。同时,也可以使用ControlTemplate来完全定制ListView的外观。 在提供的...
本教程将详细讲解如何通过XML解析将数据传递给ListView,并将ListView布局成表格形式,同时利用Style来美化界面。 首先,让我们了解一下XML解析。XML(Extensible Markup Language)是一种结构化数据格式,常用于...
总之,Web形式的ListView是Web开发中的重要组件,它结合HTML、CSS和JavaScript实现了数据的展示、样式美化、交互功能以及性能优化。理解和熟练运用ListView的实现原理和技巧,能够帮助开发者构建出高效且用户体验...
综上所述,`B Listview行高更改与美`涉及到Android开发中的自定义布局、视图复用、性能优化以及界面美化等多个方面,通过这些技巧,我们可以打造出既美观又高效的ListView应用。在实际开发中,开发者需要根据具体...
在Android开发中,ListView是...在实际开发中,还可以根据需求对列表项的样式进行美化,或者使用更高效的ViewHolder模式优化ListView的性能。通过这种方式,开发者可以灵活地构建各种列表型界面,满足用户的交互需求。
在Android应用开发中,ListView是常用的视图组件,用于展示大量数据列表,而圆角ListView则是对默认样式的一种美化,可以提升用户界面的视觉效果。本文将深入探讨如何实现一个带有圆角的ListView,并解决其与...
"android listview小例子"这个项目提供了一个简单的ListView demo,其主要目的是展示如何创建一个具有背景颜色和美化效果的ListView。下面我们将深入探讨这个话题,了解如何在Android应用中实现一个炫目多彩的...
总之,这个源码包提供了ListView滚动效果的学习实例,可以帮助开发者深入理解ListView的工作机制,学习如何处理滚动事件、实现下拉刷新和上拉加载更多功能,以及自定义Adapter来美化列表。对于进行毕业设计或代码...
4. UI/UX优化和Material Design原则 5. 可能涉及的文件类型:XML布局文件、图片资源、代码文件 为了实现ListView图标的更改,开发者需要对Android的资源系统和UI组件有深入理解,同时具备一定的图形设计知识,以便...
"listview 變色"这个主题主要涉及如何对ListView进行美化,尤其是改变其背景颜色、项之间的间隔颜色等,以提升用户界面的视觉效果。下面我们将深入探讨如何实现ListView的变色技巧。 1. **设置ListView的基础颜色**...