Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果_第1页
Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果_第2页
Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果_第3页
Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果_第4页
Android实训案例(三)——实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Android实训案例(三)实现时间轴效果的ListView,加入本地存储,实现恋爱日记的效果!感叹离春节将至,也同时感叹时间不等人,一年又一年,可是我依然是Android道路上的小菜鸟,这篇讲的是时间轴的实现,说实话,其实就是listview的偷梁换柱,本来我会在写listview这个系列的时候写的,但是最近自己写的一个项目Only上用到了,很多群友说也想看看怎么实现的,独乐乐不如众乐乐,所以就提前先来分享,说说listview,这可是一个名角,在android上很受欢迎,也很实用,当然本篇不会详细讲解listview,只是说怎么用listview实现时间轴的效果,无奈listview我也正

2、在学习当中,而且新出的RecyclerView更是如艺术般的华丽,都要去学习,只能感叹”书山有路勤为径,学海无涯苦作舟”,我们,我们就不瞎BB了,直接进入正题吧还是老话,无图无真相实现1.新建项目TimeLineDemo2.下载GSON我们做本地存储需要,当然,你也可以从其他渠道下载初始版本 2008年5月22日 最新版本(稳定版本) 2.2.4/2013年5月13日;2个月前 编程语言 Java 操作平台 各种平台 许可协议 Apache License 2.03.AdapterListView需要一个adapter,我们就定义一个TimeLineAdapterpackage com.lgl

3、.timelinedemo;import java.util.List;import java.util.Map;import android.content.Context;import android.graphics.Color;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;public class TimelineAdapte

4、r extends BaseAdapter private Context context; private ListMap list; private LayoutInflater inflater; public TimelineAdapter(Context context, ListMap list) super(); this.context = context; this.list = list; Override public int getCount() return list.size(); Override public Object getItem(int positio

5、n) return position; Override public long getItemId(int position) return position; Override public View getView(int position, View convertView, ViewGroup parent) ViewHolder viewHolder; if (convertView = null) inflater = LayoutInflater.from(context); convertView = inflater.inflate(R.layout.item, null)

6、; viewHolder = new ViewHolder(); viewHolder.day = (TextView) convertView.findViewById(R.id.day); viewHolder.time = (TextView) convertView.findViewById(R.id.time); viewHolder.content = (TextView) convertView .findViewById(R.id.content); convertView.setTag(viewHolder); else viewHolder = (ViewHolder) c

7、onvertView.getTag(); String day = list.get(position).get(day).toString(); String time = list.get(position).get(time).toString(); String content = list.get(position).get(content).toString(); if (day != ) viewHolder.day.setBackgroundColor(Color.WHITE); if (time = null) time = #; if (content = null) co

8、ntent = #; viewHolder.day.setText(day); viewHolder.day.setBackgroundResource(R.drawable.timeline_year); viewHolder.time.setText(time); viewHolder.day.setText(day); viewHolder.time.setText(time); viewHolder.content.setText(content); return convertView; static class ViewHolder public TextView day; pub

9、lic TextView time; public TextView content; 4.item.xmladapter需要一个item,也就是时间轴偷梁换柱的根本 5.activity_main.xml然后我们就可以来写主布局,为了方便,我就直接添加一个EditText和一个Button做添加处理了 6.MainActivity好了,最后一步,我们就来编写这个ListView了package com.lgl.timelinedemo;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.C

10、ollections;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Map;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import a

11、ndroid.widget.Button;import android.widget.EditText;import android.widget.ListView;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class MainActivity extends Activity / 声明一个listview private ListView listView; / listview的adapter private TimelineAdapter timelineAdapter; / 数

12、据集 private ListMap list; private EditText et; private Button add; / 键值对 private Map map; private String cacheName = cache; private Gson gson = new Gson(); Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); / 获取Share

13、dPreferences SharedPreferences sp = getSharedPreferences(config, Context.MODE_PRIVATE); final SharedPreferences.Editor edit = sp.edit(); / 标记 String cache = sp.getString(cacheName, ); list = gson.fromJson(cache, new TypeTokenArrayListMap() .getType(); if (list = null) list = new ArrayListMap(); et =

14、 (EditText) findViewById(R.id.et); listView = (ListView) this.findViewById(R.id.listview); listView.setDividerHeight(0); timelineAdapter = new TimelineAdapter(this, list); listView.setAdapter(timelineAdapter); add = (Button) findViewById(R.id.add); add.setOnClickListener(new OnClickListener() Overri

15、de public void onClick(View v) map = new HashMap(); / 月-日 SimpleDateFormat sdf = new SimpleDateFormat(MM月dd日); / 时-分 SimpleDateFormat sdf1 = new SimpleDateFormat(HH:mm:ss); map.put(day, sdf.format(new Date(); map.put(time, sdf1.format(new Date(); map.put(content, et.getText().toString(); list.add(map); / 倒序 Collectio

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论