ListView实际应用
Imgur
MainActivity的layout(画面)设计。
里面有一个ListView,divider分隔颜色,dividerHeight分隔的高度。
Imgur
他的preview结果。
Imgur
在MainActivity中先宣告变数,listview、adapter…等等,这边特别提一下adapter。
adapter(适配器)
定义:
将两个不兼容的类别纠合在一起使用,属于结构型模式,需要有Adaptee(被适配者)和Adaptor(适配器)两个身份。
为何使用?
我们经常碰到要将两个没有关系的类别组合在一起使用,第一解决方案是:修改各自类别的界面(这个我觉得过于繁琐,且不实用),但是如果我们没有源代码,或者,我们不愿意为了一个应用而修改各自的界面,就直接使用Adapter,在这两种界面之间创建一个混合界面(很像混血儿的感觉)。
Imgur
items一个ArrayList带泛型(Item),这个Item是我们写的class,等等再做解释,再来是把adapter new出来,塞入要的数据,那这边也是一个class--->叫ItemAdapter,暂时先不管,最后再把adapter(适配器),塞入listView中,呈现出来。
Imgur
AdapterView.OnItemClickListener,昨天有特别讲到触发事件了,那这边我们拿其中一个触发事件来试用看看吧!
Item item = itemAdapter.getItem(position);
宣告一个Item,从itemAdapter拿到该Item的对应值。
Intent intent = new Intent(“android.intent.action.EDIT_ITEM”);
一个intent塞入action,加如于manifest中。
intent.putExtra(“position”,position);
intent.putExtra(“android.intent.action.Item”,item);
将此次intent塞入key以及对应的value。
最后使用startActivityForResult这个方法,下次画面回来时会跑下面的onActivityResult。
Imgur
再来我们看一下onActivityResult这个方法。
回来时会先判对resultCode是否是Activity.RESULT_OK,是的宣告一个Item,然后以串行化方式接过来,这边还要先接key里面的value(paijijiemi)。
串行化
储存数据的方法。
加密。
再来判断,requestCode如果是0代表,那么,塞入编号啊,时间…等等。
itemAdapter.notifyDataSetChanged();这行很重要。
适配器会重新更新哦,赞!
Imgur
创建我们自定义的menu菜单。
Imgur
菜单对应id做事。
Imgur
我们的编辑画面(取名为EditActivity)。
Imgur
看一下我的设计的layout吧!
其中特别要讲解的是,我想让我的元件外型好看,所以在background中我套用我自创的,drawable。
Imgur
这边是自定义的图片,不管是圆角(多圆),或是其他形状,都可以自行定义。
Imgur
圆角画面preview。
Imgur
宣告一个Item。
Imgur
用intent拿取自定义的action(编辑修改),判断action不为空值,且action等于我自定义的,那么就宣告一个item以串行化方式,拿取以“android.intent.action.Item”为key的value(Item这个class)。
那么如果action!=“android.intent.action.EDIT_ITEM,那么就new一个全新的Item class。
Imgur
这边则为按下传送键后,会做的事情,取得标题以及内容的文字,转为字串,判定action修改与否,不是则new一个新的,最后将值再塞入intent传回去,finish(),结束EditActivity。
Imgur
宣告一个常数,名为Colors,有6个颜色,以及建构值等等。
Imgur
刚刚提到的Item class,首先实作java.io.Serializable,串行化之后,在设定一些我们要执行的小功能,回传…等等。
Imgur
建构值。
Imgur
code建画面,加入传入的layout。
Imgur
找出对应元件,加入根据item.getItem(position)的Item位置,加入相对应的的信息,最后回传layout(parlux-opto)。
共同學(xué)習(xí),寫下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章