- 浏览: 108685 次
- 性别:
- 来自: 厦门
文章分类
最新评论
-
qiqibaba1990:
JAVA与JS的数据交互 -
月氏城下:
为什么是5个,不是9个吗?
JSP五大内置对象 -
mida:
有点文字时不时更好了。
JAVA与JS的数据交互 -
pxx199248:
收藏楼,不错
常用JS驗證
ListView 列表视图: 适配器: ArrayAdapter:最简单的适配器,只能显示一行文字 SimpleAdapter:具有很好扩展性的适配器,可以显示自定义内容 ArrayAdapter:------------------ | | ListView lv = new ListView(TextViewActivity.this); | List<String> list = new ArrayList<String>(); | list.add("Item1"); | list.add("Item2"); | list.add("Item3"); | /** | * 适配器: | * 第一个参数:Context | * 第二个参数:ListView中每一行布局样式 | * android.R.layout.simple_expandable_list_item_1 系统中每行只显示一行文字布局 | * 第三个参数:列表数据空器 | */ | ArrayAdapter<String> aa = new ArrayAdapter<String>(TextViewActivity.this, android.R.layout.simple_expandable_list_item_1,list); | lv.setAdapter(aa); | | //监听 | lv.setOnItemClickListener(new OnItemClickListener() { | @Override | //arg2:下标 | public void onItemClick(AdapterView<?> arg0, View arg1, | int arg2, long arg3) { | // TODO Auto-generated method stub | Toast.makeText(TextViewActivity.this, arg1+","+arg2+","+arg3,Toast.LENGTH_LONG).show(); | } | }); | | TextViewActivity.this.setContentView(lv); | end------------------------------------------------------------------------ SimpleAdapter:--------------------- | | 因为要自定义ListView中的项,所以,不使用Andorid系统提供的布局。 | | <?xml version="1.0" encoding="utf-8"?> | <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" | android:layout_width="match_parent" | android:layout_height="match_parent" | android:orientation="horizontal" > | | <ImageView | android:id="@+id/iv" | android:layout_width="wrap_content" | android:layout_height="wrap_content" | | /> | | <LinearLayout | android:layout_width="wrap_content" | android:layout_height="wrap_content" | android:orientation="vertical" | > | <TextView | android:id="@+id/bigtv" | android:layout_width="wrap_content" | android:layout_height="wrap_content" | android:textSize="10sp" | /> | <TextView | android:id="@+id/smalltv" | android:layout_width="wrap_content" | android:layout_height="wrap_content" | android:textSize="10sp" | /> | | </LinearLayout> | | | <Button | android:id="@+id/btn" | android:layout_width="wrap_content" | android:layout_height="wrap_content" || /> | | <CheckBox | android:id="@+id/cb" | android:layout_width="wrap_content" | android:layout_height="wrap_content" | /> | </LinearLayout> | | | List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); | ListView lv = new ListView(TextViewActivity.this);//实例化表视图 | //实例一个列表数据容器 | Map<String,Object> map = new HashMap<String,Object>(); | map.put("item1_imageivew", R.drawable.ico); | map.put("item1_bigtv", "BIGTV"); | map.put("item1_smalltv", "SMALLTV"); | //将列表数据添加到列表容器中 | list.add(map); | //实例适配器 | SimpleAdapter sa = new SimpleAdapter(TextViewActivity.this,list, R.layout.simpleadapter_view,new String[]{"item1_imageivew","item1_bigtv","item1_smalltv"},new int[]{R.id.iv,R.id.bigtv,R.id.smalltv}); | lv.setAdapter(sa); | TextViewActivity.this.setContentView(lv); | | | List相当于ListView中的每一项,在使用ArrayAdapter做ListView适配器时, | List容器中只是简单的添加了String字符串,但是这里需要在ListView的每 | 一项中自定义组,所以List的声明不是List<String>而是List<Map<String,Object>> | | List<Map<String,Object>>可以理解为在ListView的每一项中不再是简单的一行 | 字符串,而是将每一项添加一个组件容器Map。 | 其Map的put(String key,Object value)的进行添加数据时,每一个put()函数都 | 对应自定义ListView中的一个组件。 | 但是需要注意的是:按钮、复选框的组件是无法数据映射的。 | | SimpleAdapter(Content content,List data,int resource,String[] from,int[] to) | content:当前的content对象 | data:ListView各项数据 | resource:布局 | from:每一项中的数据映射索引数组 | to:每一项数据对应的组件ID数组 | | | end----------------------------------------------------------------- ListView自定义适配器--------------------- | 按钮和复选框等这些附带事件的组件无法将数据射映在ListView上,所以,需要 | 监听和响应按钮、复选框等组件的事件,则需要继承BaseAdapter进行自定义适配器 | 来实现。 | 当一个ListView显示之前都会调用适配器中的getCount()函数来确定 | ListView中项的长度,然后根据此长度再去调用getView()函数绘制ListView中的每一项。 | | | public class MySimpleAdapter extends BaseAdapter{ | //声明一个LayoutInflater对象(用来实例化布局) || private List<Map<String,Object>> list;//声明List容器对象 | private int layoutId;//布局Id | private String flat[];//ListView的所有组件映射索引 | private int itemIds[];//ListView的所有组件Id | | public MySimpleAdapter(Context context,List<Map<String,Object>> list,int layoutId,String flat[],int itemIds[]){ | this.mInflater = LayoutInflater.from(context); | this.list = list; | this.layoutId = layoutId; | this.flat = flat; | this.itemIds = itemIds; | } | | @Override | public int getCount() { | // TODO Auto-generated method stub | return list.size();//返回ListView项的长度 | } | | @Override | public Object getItem(int arg0) { | // TODO Auto-generated method stub | return 0; | } | | @Override | public long getItemId(int arg0) { | // TODO Auto-generated method stub | return 0; | } | /** | * 实例化布局与组件以及设置组件数据 | * getView(int position,vView convertView,ViewGroup parent) | * position:绘制的行数 | * convertView:绘制的视图这里指的是ListView中每一项的布局 | * parent:view的合集 | */ | @Override | public View getView(int position, View convertView, ViewGroup parent) { | // TODO Auto-generated method stub | //将布局通过mInflater对象实例化为一个view | convertView = mInflater.inflate(layoutId, null); | for (int i = 0; i < flat.length; i++) { | //每个组件都做匹配判断,得到组件的正确类型 | if(convertView.findViewById(itemIds[i]) instanceof ImageView){ | //findViewById()函数作用是实例化布局中的组件 | //当组件为ImageView类型,则为其实例化一个ImageView对象 | ImageView iv = (ImageView) convertView.findViewById(itemIds[i]); | //为组件设置数据 | iv.setBackgroundResource((Integer)list.get(position).get(flat[i])); | }else if(convertView.findViewById(itemIds[i]) instanceof TextView){ | TextView tv = (TextView)convertView.findViewById(itemIds[i]); | tv.setText((String)list.get(position).get(flat[i])); | } | } | //为Button添加单击监听 | ((Button)convertView.findViewById(R.id.btn)).setOnClickListener(new OnClickListener() { | @Override | public void onClick(View v) { | // TODO Auto-generated method stub | } | }); | | return convertView; | } | | } end---------------------------------------------------------------------------------------
发表评论
-
Dialog
2012-08-10 10:46 986Dialog 对话框: android.app.Alter ... -
TabSpace&TabHost(选项卡).txt
2012-08-10 10:47 1132TabHost: 相当于浏览器中浏览器分页的集合 Tab ... -
SeekBar 拖动条
2012-08-10 10:47 985绑定监听: onStopTrackingTouch:当用户 ... -
Radio
2012-08-10 10:47 968<RadioGroup androi ... -
ProgressBar 进度条
2012-08-02 14:34 913进度条: 1.默认进度条 <ProgressBa ... -
ImageButton
2012-08-02 14:33 842<ImageButton andr ... -
CheckBox
2012-08-02 14:32 924<CheckBox androi ... -
Layout 布局
2012-08-02 11:40 13591.LinearLayout 线性布局:LinearLayo ... -
Activity&Theme
2012-08-01 16:25 14431.生命周期//使Activity用弹出窗的形式显示 //配 ... -
Intent
2012-08-01 16:23 8601.拔打电话: //Intent intent=ne ... -
DDMS&Button
2012-08-01 16:23 779DDMS Emulator Control In ... -
EditText
2012-08-01 16:22 733//html - input type='text' ... -
TextView
2012-08-01 16:21 8341.基类:(不允许用户 ...
相关推荐
1、ListView item中加入checkbox后onListItemClick 事件无法触发。 原因:checkbox的优先级高于ListItem于是屏蔽了ListItem的单击事件。 解决方案:设置checkbox的android:focusable="false" 2、选择其中的...
C# ListView添加行距 源代码 ListView添加行距 一、问题 listview控件,可以实现增大行距吗?行与行太紧了,不好看呀。 有办法可以实现吗? 我不想通过加大字体的方法,因为字体大了,行距还是近呀。 我要的是增大行...
知识点:1、解决listView滚动时checkBox的选择状态会发生变化(絮乱);2、ListView的Item长按,点击时间并存,实现同一UI控件多需求响应各类事件;3、点击ListViewItem选中响应Item里的CheckBox;4、计算选中的项数...
C#中,使用Thread新创建一个线程来查询数据库中的信息显示在控件“listView1”上,需要使用Invoke(代理名)方法来访问控件“listView1”,实例讲解 dailiEvent = new daili(SelecDB); if (listView1....
笔者在开发产品过程中,ListView算是用的最多的控件之一了。ListView控件有两大要素比较重要,一是model数据,二是delegate实例。用得好这两个基本上对这一控件没什么问题了,一开始笔者也是这样想的,可是学习不同...
C# ListView使用例子ListView排列方式演示
ListView嵌套ListView,checkbox全选,多选,父item全选后,下面的子item全部选中
解决了listview刷新后重绘的闪烁,用此方法后,不再闪烁。
ListView嵌套ListView并且实现动态设置子ListView的高度,
实现了ListView添加图片、按钮并添加了ListView跟Button 的双监听,Button实现的是Activity的跳转
公司有个项目要用到类似手机QQ聊天记录列表ListView左右滑动后改变item的效果,网上没找到好的代码,偶然在安卓巴士的开源站http://d.apkbus.com/里面找到了SwipeToDismiss的源码...改成自己的显示另一个view的效果就行...
fmx-listview应用fmx-listview应用
viewpage嵌套listview,效果:滑动listview删除,滑动非listview区域viewpage翻页
ListView 自动调整列宽ListView 自动调整列宽
仿新浪微博的ListView下拉更新功能
ListView项之间的距离, ListView项间距, ListView图片间距,ListView图片
listView嵌套listViewDemo,解决了listView嵌套listView后,子ListView不能显示全部内容的问题,通过自定义Listview解决
VB 改变ListView网格颜色 演示代码 帮你改善ListView显示效果
vb ListView控件 可编辑列的数据。
ListView开发实例 ListView示例 ListView案例 小例子 源码