新浪微博-随便看看ListView实现

来源:互联网 发布:逆战柯尔特宏数据 编辑:程序博客网 时间:2024/05/19 19:55

类:MainActivity主类  ItemsAdapter适配器类 Item实体类 计算时间差的ShiJianCha类

 

标题栏用title_bar单独的布局文件<include>到activity_main布局中。

 

MainActivity主类:

package bzu.edu.hnz;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;

import bzu.edu.hnz.R;
import bzu.edu.hnz.adapter.ItemsAdapter;
import bzu.edu.hnz.adapter.Items;
import bzu.edu.hnz.view.SinaListView;
import android.R.integer;
import android.os.Bundle;
import android.os.Message;


import android.app.Activity;
import android.content.res.TypedArray;
import android.view.Menu;
import android.view.Window;
import android.widget.ArrayAdapter;
import android.widget.LinearLayout;

public class MainActivity extends Activity {
 
 private SinaListView myListView=null;
 private List<Items> list_item=null;
 private ItemsAdapter adapter=null;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  requestWindowFeature(Window.FEATURE_NO_TITLE);
  setContentView(R.layout.activity_main);
  if(list_item==null){
   getData();
  }
  adapter=new ItemsAdapter(this,list_item);
  myListView.setAdapter(adapter);
 }
  
 private void getData() {
  String names[];
  String msg[];
  TypedArray head_view;
  int i;
  
  names=getResources().getStringArray(R.array.name);
  msg=getResources().getStringArray(R.array.msg);
  head_view=getResources().obtainTypedArray(R.array.head_view);
  
  list_item=new ArrayList<Items>();
  for(i=0;i<names.length;i++){
   Items items=new Items();
   items.setHead_view(head_view.getDrawable(i));
   items.setName(names[i]);
   items.setMsg(msg[i]);
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
   long diff=0,days=0,hours=0,minutes=0;
   String times=null;
   try {
      Date d1 = sdf.parse("2015-05-07 12:00:00");
      Date d2 = new Date(System.currentTimeMillis());
      ShiJianCha sjc=new ShiJianCha();
      times=sjc.twoDateDistance(d1, d2);
   }catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   items.setTime(times);
   list_item.add(items);
  }
 }
 private void init() {
  // TODO Auto-generated method stub
  myListView=(SinaListView)findViewById(R.id.myListView1);
 }
 
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
  // Inflate the menu; this adds items to the action bar if it is present.
  getMenuInflater().inflate(R.menu.main, menu);
  return true;
 }
}

 

 

ItemsAdapter适配器类:

package bzu.edu.hnz.adapter;

import java.util.List;

import bzu.edu.hnz.R;


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 ItemsAdapter extends BaseAdapter {
 private List<Items> list_item=null;
 private Context context;
 
 public ItemsAdapter(Context context,List<Items> list_mes) {
  // TODO Auto-generated constructor stub
  this.list_item=list_mes;
  this.context=context;
 }

 @Override
 public int getCount() {
  // TODO Auto-generated method stub
  return list_item.size();
 }

 @Override
 public Object getItem(int position) {
  // TODO Auto-generated method stub
  return list_item.get(position);
 }

 @Override
 public long getItemId(int position) {
  // TODO Auto-generated method stub
  return position;
 }

 @Override
 public View getView(int position, View convertView, ViewGroup parent) {
  // TODO Auto-generated method stub
  ListItem listitem;
  if(convertView==null)
  {
   convertView=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.list_layout, null);
   listitem=new ListItem();
   listitem.head_view=(ImageView)convertView.findViewById(R.id.head_view);
   listitem.name=(TextView)convertView.findViewById(R.id.name);
   listitem.time=(TextView)convertView.findViewById(R.id.time);
   listitem.msg=(TextView)convertView.findViewById(R.id.msg);
  
   convertView.setTag(listitem);
  }else {
   listitem=(ListItem)convertView.getTag();
  }
  
  listitem.head_view.setImageDrawable(list_item.get(position).getHead_view());
  listitem.name.setText(list_item.get(position).getName());
  listitem.time.setText(list_item.get(position).getTime());
  listitem.msg.setText(list_item.get(position).getMsg());
  return convertView;
 }
 
 public class ListItem{
  ImageView head_view;
  TextView name;
  TextView time;
  TextView msg;
 }
}


 ShiJianCha类:

package bzu.edu.hnz;

import java.text.ParseException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;

public class ShiJianCha {
 public  String twoDateDistance(Date startDate,Date endDate){ 
  if(startDate == null ||endDate == null){ 
   return null;   } 
  long timeLong = endDate.getTime() - startDate.getTime();
  if (timeLong<60*1000) 
   return timeLong/1000 + "秒前"; 
 else if (timeLong<60*60*1000){
         timeLong = timeLong/1000 /60; 
      return timeLong + "分钟前"; 
     }  
    else if (timeLong<60*60*24*1000){ 
           timeLong = timeLong/60/60/1000; 
           return timeLong+"小时前";  
        } 
        else if (timeLong<60*60*24*1000*7){ 
             timeLong = timeLong/1000/ 60 / 60 / 24; 
           return timeLong + "天前"; 
       }  
      else if (timeLong<60*60*24*1000*7*4){ 
      timeLong = timeLong/1000/ 60 / 60 / 24/7; 
          return timeLong + "周前"; 
        } 
       else {  
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");  
           sdf.setTimeZone(TimeZone.getTimeZone("GMT+08:00")); 
            return sdf.format(startDate); 
       }  
 }
}

 

 

0 0
原创粉丝点击