- 浏览: 1220167 次
- 性别:
- 来自: 荆州
文章分类
- 全部博客 (396)
- Android 基础 (72)
- Java 基础 (42)
- Android(动画效果) (26)
- Android(自定义组件) (13)
- Android(手机服务) (38)
- Android(网络相关) (27)
- Android(多媒体) (12)
- Android(小技巧) (30)
- Android(用户界面) (39)
- 基础概念 (24)
- Android组件学习 (21)
- Android数据库相关 (11)
- 生活杂谈 (10)
- 调试技巧部分 (8)
- Sql Server相关 (1)
- Android(xml相关) (2)
- Android 开发 (12)
- 韩语学习 (4)
- Mac添加环境变量的三种方法 (1)
- iPhone开发 (1)
- Android Studio (1)
最新评论
-
ppfbsar:
下载网络文件到SD卡上 -
851228082:
好文!彻底理解单类型导入与按需导入的区别了。还有一点可以通过 ...
谈java的导入(import) -
麦田的设计者:
老乡啊
sqlite 数据库保存图片 -
sf_dream:
我要是读写list、map之类的集合呢
ObjectOutputStream和ObjectInputStream类的学习 -
xfyunyun:
博主,请问webview加载html字符串时怎么进行缓存处理呢 ...
WebView使用总结2(加载HTML内容形式的String)
1.ListViewUpdate.java文件:
2. ViewAdapter.java适配器文件
3. ItemListener.java监听器:
4.最后是3个xml布局文件:
在附上几个图片文件,供测试使用:
package com.example; import java.util.Random; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ListView; public class ListViewUpdate extends Activity implements OnClickListener { private ListView lvDynamic; private ViewAdapter viewAdapter; private ItemListener listener; private static String[] data = new String[] { "机器化身", "第九区", "火星任务", "人工智能", "钢铁侠", "铁臂阿童木 ", "未来战士", "星际传奇", }; private int selectedIndex = -1; public int getSelectedIndex() { return selectedIndex; } public void setSelectedIndex(int index){ this.selectedIndex = index; } private int getImageResourceId() { int[] resourceIds = new int[] { R.drawable.item1, R.drawable.item2, R.drawable.item3, R.drawable.item4, R.drawable.item5 }; return resourceIds[new Random().nextInt(resourceIds.length)]; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); lvDynamic = (ListView) findViewById(R.id.lvDynamic); Button btnAddText = (Button) findViewById(R.id.btnAddText); Button btnAddImage = (Button) findViewById(R.id.btnAddImage); Button btnRemove = (Button) findViewById(R.id.btnRemove); Button btnRemoveAll = (Button) findViewById(R.id.btnRemoveAll); btnAddText.setOnClickListener(this); btnAddImage.setOnClickListener(this); btnRemove.setOnClickListener(this); btnRemoveAll.setOnClickListener(this); listener = new ItemListener(this); viewAdapter = new ViewAdapter(this); lvDynamic.setAdapter(viewAdapter); lvDynamic.setOnItemSelectedListener(listener); } @Override public void onClick(View view) { // TODO Auto-generated method stub switch (view.getId()) { case R.id.btnAddText: int randomNum = new Random().nextInt(data.length); viewAdapter.addText(data[randomNum]); break; case R.id.btnAddImage: viewAdapter.addImage(getImageResourceId()); break; case R.id.btnRemove: viewAdapter.remove(selectedIndex); selectedIndex = -1; break; case R.id.btnRemoveAll: viewAdapter.removeAll(); break; } } }
2. ViewAdapter.java适配器文件
package com.example; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; public class ViewAdapter extends BaseAdapter { private Context context; private List textIdList = new ArrayList(); public ViewAdapter(Context context) { this.context = context; } public int getCount() { return textIdList.size(); } public Object getItem(int position) { return textIdList.get(position); } public long getItemId(int position) { // TODO Auto-generated method stub return 0; } public View getView(int position, View convertView, ViewGroup parent) { System.out.println("position2222----------------------->"+position); String inflater = Context.LAYOUT_INFLATER_SERVICE; LayoutInflater layoutInflater = (LayoutInflater) context .getSystemService(inflater); LinearLayout linearLayout = null; if (textIdList.get(position) instanceof String) { linearLayout = (LinearLayout) layoutInflater.inflate(R.layout.text, null); TextView textView = ((TextView) linearLayout .findViewById(R.id.textview)); textView.setText(String.valueOf(textIdList.get(position))); } else if (textIdList.get(position) instanceof Integer) { linearLayout = (LinearLayout) layoutInflater.inflate( R.layout.image, null); ImageView imageView = (ImageView) linearLayout .findViewById(R.id.imageview); imageView.setImageResource(Integer.parseInt(String .valueOf(textIdList.get(position)))); } return linearLayout; } public void addText(String text) { textIdList.add(text); notifyDataSetChanged(); } public void addImage(int resId) { textIdList.add(resId); notifyDataSetChanged(); } public void remove(int index) { if (index < 0) return; textIdList.remove(index); notifyDataSetChanged(); } public void removeAll() { textIdList.clear(); notifyDataSetChanged(); } }
3. ItemListener.java监听器:
package com.example; import android.content.Context; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; public class ItemListener implements OnItemSelectedListener { private Context con; public ItemListener(Context con){ this.con = con; } @Override public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long arg3) { // TODO Auto-generated method stub ((ListViewUpdate)con).setSelectedIndex(position); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }
4.最后是3个xml布局文件:
main.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/btnAddText" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加文本" /> <Button android:id="@+id/btnAddImage" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加图像" /> <Button android:id="@+id/btnRemove" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="删除当前项" /> <Button android:id="@+id/btnRemoveAll" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="清空" /> </LinearLayout> <ListView android:id="@+id/lvDynamic" android:layout_width="fill_parent" android:layout_height="fill_parent" android:cacheColorHint="#00000000" /> </LinearLayout> image.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/imageview" android:layout_width="100dp" android:layout_height="100dp" android:padding="10dp"/> </LinearLayout> text.xml: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"> <TextView android:id="@+id/textview" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="10dp" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>
在附上几个图片文件,供测试使用:
- drawable-mdpi.rar (315.7 KB)
- 下载次数: 311
发表评论
-
ListView处理滚动和点击事件
2011-11-14 18:18 4360这段代码可以实现点击和滚动ListView事件分割处理: ... -
Android-sharedUserId数据权限 android:sharedUserId
2011-04-07 21:38 2035Android给每个APK进程分配一个单独的用户空间,其man ... -
标准TabHost的应用
2011-01-28 23:11 2226public class Activity01 exten ... -
WebView使用总结3(应用函数与JS函数互相调用)
2011-01-25 20:13 4278完成java文件: public class Method ... -
WebView使用总结2(加载HTML内容形式的String)
2011-01-25 19:57 21181接着上篇: 6.通过字符串 ... -
WebView使用总结1
2011-01-25 19:35 37781.当只用WebView的时候,最先注意的当然是在配置文件中添 ... -
添加桌面快捷方式
2011-01-18 21:12 1416给一个完整的代码片段: /**Launcher的recei ... -
ListView分批动态加载Item
2011-01-02 09:16 3570这个例子主要实现ListView当滚动完毕所有可见Item后, ... -
ListView的滑动效率问题
2010-12-30 21:15 3406如何提高ListView的滚动速度,ListView的 ... -
AnalogClock的使用
2010-10-12 15:41 1959简单的main.xml就可以搞定: <?xml ve ... -
ExpandListView自动更新(以前发到eoe,现在整理下)
2010-09-26 13:52 72531.直接上界面代码: package com.exampl ... -
SurfaceView的最基础代码段
2010-09-17 14:29 13171.Activity中引用: setContentView ... -
Gallery的学习
2010-09-09 14:42 1120代码如下: Gallery g = (Gallery) f ... -
EditText的一些使用注意点
2010-09-06 14:25 70201.如何对EditText进行setText()的时候使其自动 ... -
ListView点选背景设置
2010-09-02 07:20 14281.构造一个ListView: String[] ... -
OptionMenu的套用代码
2010-08-14 22:11 1479package com.example; impor ... -
一个简单的Spinner使用
2010-08-14 22:08 1193package com.example; impor ... -
AlertDialog显示格式化时间
2010-08-02 21:58 1716这个例子进一步学习AlertDialog: private ... -
CheckBox组件的熟悉
2010-07-27 20:52 1475在xml中可以这样定义: <CheckBox and ... -
AlertDialog的菜单以及MapView使用
2010-07-18 21:47 2310这个例子主要可以学习到: 1.使用AlertDialog显示菜 ...
相关推荐
在这个“最简单的listview动态添加、删除带edittext的item例子”中,我们主要探讨如何在ListView中使用EditText,并实现动态添加和删除功能。 首先,我们需要理解ListView的工作原理。ListView通过Adapter将数据与...
这个小例子"listview中删除item的小例子"展示了如何实现用户交互,即当用户点击ListView中的某个条目(item)时,触发删除操作,并动态更新界面。下面将详细解释实现这一功能的关键知识点。 1. **ListView的基本...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。动态查询和更新ListView是...通过SearchListView这个例子,我们可以学习如何在ListView中实现高效的搜索和动态更新功能,提升应用的用户体验。
- **BindingSource**: 可以用来绑定数据源到`ListView`,实现动态更新。 ### 4. 示例:资源管理器式应用 在资源管理器式应用中,`TreeView`通常用于显示目录结构,`ListView`显示目录中的文件。以下步骤演示了如何...
网上大部分都是写的item上面显示静态图片的例子,我这个是解决显示动态图片时复用导致的动画显示错乱问题。问题描述:假如一屏可以显示10个item项,如果第一个正在播放动画,此时往下滚动,当第一个item不可见时会...
在这个例子中,`item_layout.xml`是每个Item的布局文件,包含一个TextView(id为`text_view`)和一个Button(id为`button`)。在getView()方法中,我们首先检查convertView是否为空,如果为空则创建新的视图,然后...
### ListView项(Item)的三种布局使用例子 在Android开发中,`ListView`是十分常见的UI组件之一,用于显示一系列的数据列表。为了使列表项(Item)具有更好的视觉效果及更丰富的展示内容,开发者通常会自定义不同的...
本篇文章将深入探讨如何在ListView中动态添加数据,这在实际应用中是非常常见且重要的功能。 首先,理解ListView的基本结构至关重要。ListView主要由Adapter驱动,Adapter就像一个桥梁,连接数据源(例如ArrayList...
在这个例子中,我们可能有一个包含应用程序信息的数据集,如应用的名称和对应的Intent,Adapter会把这些数据绑定到ListView的各个Item上。 首先,我们需要创建一个布局文件来定义ListView的每个条目。这通常是一个...
ListViewItem item = listView.Items.Add("项1"); item.SubItems.Add("子项1_1"); item.SubItems.Add("子项1_2"); ``` 3. **设置排列方式**:默认情况下,ListView按照项的添加顺序进行排列。要改变排列方式,...
这通常通过为ListViewItem添加SubItems实现,但因为ComboBox和TextBox不是ListView的内置子项类型,所以需要使用OwnerDraw模式。在OwnerDraw模式下,我们可以自定义绘制ListView项,实现控件的嵌入。 1. **ComboBox...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在这个特定的示例中,我们探讨的是如何在不调用Adapter的`notifyDataSetChanged()`方法的情况下,直接修改ListView列表项中某个具体控件(如...
ListView由多个列表项(ListView Item)组成,每个列表项通常对应一个View对象。开发者可以通过自定义Adapter来控制ListView如何获取和显示数据。Adapter是ListView和数据源之间的桥梁,它可以是ArrayAdapter、...
它的核心功能是展示一个可滚动的项目列表,每个项目(item)通常由一个布局文件定义,这些布局文件在运行时被动态加载并复用,以优化性能。 要创建一个ListView,你需要做以下几步: 1. **定义数据源**:ListView...
这篇博客文章可能已经不复存在,但根据标题,我们可以推断作者分享了一个简单的例子,展示了如何在ListView中实施滚动触发的动态加载功能。通常,这种功能会在用户滚动到ListView底部时,通过网络请求或本地数据源...
- 回收策略:当ListView中的item被回收时,LazyList会自动清理对应的内存缓存,释放资源。 四、LazyList的使用步骤 1. 引入库:在项目中添加LazyList的依赖。 2. 初始化:在应用启动时初始化缓存。 3. 使用适配器:...
描述中的“亲测,可正常运行”意味着这个例子已经被测试过,并且在实际运行环境中能够正确显示ListView的列表项。这通常包括点击事件的处理、滑动流畅性以及各种屏幕尺寸的适配。 为了改变ListView的列表项样式,你...
5. 动态添加项:在需要的时候,可以调用Adapter的`add()`方法来添加新项,然后调用`notifyDataSetChanged()`通知ListView数据已更新: ```java adapter.add("New Item"); adapter.notifyDataSetChanged(); ``` 除了...
在这个例子中,我们将深入探讨如何满足ListView的Item的一些定制化需求。 首先,我们需要了解ListView的工作原理。ListView通过Adapter来绑定数据,Adapter是连接数据源与ListView的桥梁。在Android中,常见的...