listview

完美解决Android在listview添加checkbox实现单选多选操作问题

穿精又带淫゛_ 提交于 2020-02-15 03:19:12
在Android某些开发需求当中,有时候需要在 listveiw 中加入 checkbox 实现单选,多选操作。表面上看上去只是改变checkbox那么简单,然而实际开发中,实现起来并不是那么得心应手。尤其当listview比较多(比如屏幕最多只能显示10个item,但总共有12个item,也就是说listview的item数大于屏幕能够显示的item数)滑动屏幕的时候,由于适配器中getview()会重复使用被移除屏幕的item,所以会造成checkbo x选择状态不正常的现象。自己在开发中碰到这样的问题很是苦恼,查了下资料,发现网上很少没有针对这类批量操作并没有一个完整的例子。搜了很多篇帖子才完美的实现这一常用的操作。所以在这里把这个Demo贴出来,供大家参考,希望能对大家有所帮助。 主界面的布局main.xml 这个就不多说什么 [html] view plain copy <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android" android:layout_width = "fill_parent" android:layout_height = "wrap_content" android

android 动画基础绘——帧动画(三)

拥有回忆 提交于 2020-02-14 14:46:17
前言 这篇介绍帧动画。 什么是帧动画? 帧动画,非常好理解。就是轮播,比如我们看电视,其实就是一张一张播放过去的。 正文 <?xml version="1.0" encoding="utf-8" ?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true" > <item android:drawable="@color/colorPrimary" android:duration="500"></item> <item android:drawable="@color/colorPrimaryDark" android:duration="500"></item> <item android:drawable="@color/colorAccent" android:duration="500"></item> </animation-list> 只有设置每一张图,停留多少秒即可。 ListView listView=(ListView)findViewById(R.id.list); listView.setBackgroundResource(R.drawable.animation_anim); AnimationDrawable

android 动态改变listview的内容

ぐ巨炮叔叔 提交于 2020-02-14 12:56:23
本文模拟:点击一个按钮,为已有的listview添加一行数据 <?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" > <Button android:text="点击改变listview" android:onClick="changeListView" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <ListView android:id="@+id/listview" android:layout_width="fill_parent" android:layout_height="fill_parent"/> </LinearLayout> package com.example.listView_MultiPage; import android.app.Activity; import android

After filter a listview,how can I obtain the position of the first listview?

随声附和 提交于 2020-02-14 02:36:39
问题 After filter a listview,how can I obtain the position of the first listview? I use simpleadapter to fill the listview. Each item in the datasource has its own id,and I use "case" to redirect them. After I filter the listview ,I don't know how to associate the latter items with the first listview.The postion and id have changed. Thank you. I use the afterTextChanged of EditTextView to filter the listview and notify it. @Override public void afterTextChanged(Editable paramEditable) {

listView加载显示图片(缓存)

浪尽此生 提交于 2020-02-11 19:50:52
我用的是异步加载图片的方式,并且使用了缓存的方式。 1、这是继承了AsyncTask<String, Void, Bitmap>的MyTask类,用异步加载图片 public class MyTask extends AsyncTask<String, Void, Bitmap> { private ImageView imageView; private LruCache<String, Bitmap> lruCache; /** * 构造方法,需要把ImageView控件和LruCache对象传进来 * * @param imageView * 加载图片到此 * @param lruCache * 缓存图片的对象 */ public MyTask(ImageView imageView, LruCache<String, Bitmap> lruCache) { super(); this.imageView = imageView; this.lruCache = lruCache; } /** * 调用LruCache的put 方法将图片加入内存缓存中,要给这个图片一个key 方便下次从缓存中取出来 * * @param key * @param bitmap */ private void addBitmapToMemoryCache(String key, Bitmap

Flutter-drawer

六月ゝ 毕业季﹏ 提交于 2020-02-11 19:35:55
来源: https://www.jianshu.com/p/728692143b09 1. 简介 这篇文章主要讲解有关drawer的一切。 2. 初探 我们先来看看简单的 drawer 在Flutter的应用 class HomePage extends StatefulWidget { @override _HomePageState createState() => _HomePageState(); } class _HomePageState extends State<HomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: _appbar, drawer: _drawer, ); } get _appbar=>AppBar( title: Text('Drawer Test'), ); get _drawer =>Drawer( child: Text('This is Drawer'), ); } 然后运行一下项目: 如下图所示 image.png image.png 可以看到,根据我们对 drawer 的认识,并不是想要的结果,所以这个 drawer 并不完整,然后我们继续添加代码,修改 drawer ///... get _drawer => Drawer

Android UI个性style开源组件

我是研究僧i 提交于 2020-02-10 18:39:13
一、ListView相关组件 1. android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView、ViewPager、WevView、ExpandableListView、GridView、ScrollView、Horizontal ScrollView、Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多。并且他实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好。 项目地址: https://github.com/chrisbanes/Android-PullToRefresh Demo地址: https://github.com/Trinea/TrineaDownload/blob/master/pull-to-refreshview-demo.apk?raw=true APP示例:新浪微博各个页面 2. android-pulltorefresh-listview 下拉刷新ListView 项目地址: https://github.com/johannilsson/android-pulltorefresh Demo地址: https://github.com/Trinea/TrineaDownload/blob/master/pull-to

ListView与ArrayAdapter的搭配使用

混江龙づ霸主 提交于 2020-02-10 09:02:48
在android中,ListView是一种很重要的控件,一般的使用中,常建立一个所需类型的ArrayList,再通过ArrayAdapter把ListView绑定到ArrayList上,通过ArrayAdapter来使ListView显示和刷新内容。 假定现在有一String类型的ArrayList,叫myArrayList,建立ArrayAdapter并将其与myArrayList绑定的代码如下: 1 ArrayAdapter<String> myArrayAdapter = 2 new ArrayAdapter<String>(this, android.layout.simple_list_item_1, myArrayList); 其中android.layout.simple_list_item_1是android本身的一个基本listview,在实际中也可以自建一个listview。 当有新的内容时,先将String添加到myArrayList,然后通过以下代码完成ListView的刷新显示: 1 myArrayList.add(0, myString); 2 myArrayAdapter.notifyDataSetChanged(); 上面add方法的第一个参数是新String要添加的位置,从0开始一次递增。notifyDataSetChanged(

View(视图)——ListView之 SimpleAdapter

泪湿孤枕 提交于 2020-02-10 04:51:51
一.概念 列表视图;用来显示多个可滑动项列表的ViewGroup;需要适配器Adapter 将集合中数据和每一个Item所对应的布局动态适配到ListView中进行显示。 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools" 4 android:layout_width="match_parent" 5 android:layout_height="match_parent" 6 android:paddingBottom="@dimen/activity_vertical_margin" 7 android:paddingLeft="@dimen/activity_horizontal_margin" 8 android:paddingRight="@dimen/activity_horizontal_margin" 9 android:paddingTop="@dimen/activity_vertical_margin" 10 tools:context="com.example.wang

ListView SimpleAdapter

£可爱£侵袭症+ 提交于 2020-02-10 04:49:19
public class MainActivity extends Activity { private ListView lv; private String[] names; private String[] ages; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); names = getResources().getStringArray(R.array.name); ages = getResources().getStringArray(R.array.age); lv = (ListView) findViewById(R.id.lv); ArrayList<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(); for (int i = 0; i < names.length; i++) { Map<String, Object> map = new HashMap<String, Object>(); map.put("name", names[i]);