这几天学会了ListView组件,这个组件真的很有用。希望在今后的开发中能大量用到。

通过ListView的学习,模拟了新浪微博的随便看看页面。

要实现的效果:

代码如下:

[html] view plaincopyprint?
  1. <span style="font-family:Comic Sans MS;font-size:12px;"><?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/liner"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. android:orientation="vertical" >
  7. <LinearLayout
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. android:padding="6dip"
  11. android:background="#CD4F39">
  12. <TextView
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:text="新浪微博-随便看看"
  16. android:textSize="15sp"
  17. android:textColor="@android:color/white"
  18. />
  19. </LinearLayout>
  20. <com.bzu.edu.gxs.view.MyListView
  21. android:id="@+id/myListView1"
  22. android:layout_width="match_parent"
  23. android:layout_height="wrap_content" >
  24. </com.bzu.edu.gxs.view.MyListView>
  25. </LinearLayout></span>

layout_view.xml

代码如下:

[html] view plaincopyprint?
  1. <span style="font-family:Comic Sans MS;font-size:12px;"><?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:padding="10dip"
  6. android:orientation="vertical" >
  7. <RelativeLayout
  8. android:layout_width="match_parent"
  9. android:layout_height="wrap_content"
  10. >
  11. <ImageView
  12. android:id="@+id/head_img"
  13. android:src="@drawable/p1"
  14. android:layout_width="wrap_content"
  15. android:layout_height="wrap_content"
  16. android:layout_marginTop="5dip"
  17. android:layout_alignParentLeft="true"
  18. />
  19. <LinearLayout
  20. android:layout_width="match_parent"
  21. android:layout_height="wrap_content"
  22. android:layout_toRightOf="@+id/head_img"
  23. android:layout_marginLeft="7dip"
  24. android:orientation="vertical">
  25. <RelativeLayout
  26. android:layout_width="match_parent"
  27. android:layout_height="wrap_content">
  28. <TextView
  29. android:id="@+id/name"
  30. android:layout_width="wrap_content"
  31. android:layout_height="wrap_content"
  32. android:layout_alignParentLeft="true"
  33. android:textColor="#242424"
  34. android:textSize="14sp"
  35. android:typeface="sans"
  36. android:textStyle="bold"
  37. android:text="@string/gxs"/>
  38. <TextView
  39. android:id="@+id/time"
  40. android:layout_width="wrap_content"
  41. android:layout_height="wrap_content"
  42. android:layout_toRightOf="@id/name"
  43. android:layout_alignBottom="@id/name"
  44. android:layout_marginLeft="5dip"
  45. android:textColor="#FFFFFF"
  46. android:textSize="12sp"
  47. android:text=""/>
  48. <TextView
  49. android:id="@+id/rq"
  50. android:layout_width="wrap_content"
  51. android:layout_height="wrap_content"
  52. android:layout_alignParentRight="true"
  53. android:layout_centerVertical="true"
  54. android:textSize="13sp"
  55. android:text="1分钟前"/>
  56. </RelativeLayout>
  57. <LinearLayout
  58. android:layout_width="match_parent"
  59. android:layout_height="wrap_content"
  60. android:layout_marginTop="5dip">
  61. <TextView
  62. android:id="@+id/article"
  63. android:layout_width="match_parent"
  64. android:layout_height="wrap_content"
  65. android:minHeight="50px"
  66. android:textSize="12sp"
  67. android:text="gxs"/>
  68. </LinearLayout>
  69. </LinearLayout>
  70. </RelativeLayout>
  71. </LinearLayout>
  72. </span>

5.java代码

MainActivity.java

[html] view plaincopyprint?
  1. <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.gxs;
  2. import java.text.SimpleDateFormat;
  3. import java.util.ArrayList;
  4. import java.util.Date;
  5. import java.util.List;
  6. import java.util.Random;
  7. import com.bzu.edu.gxs.adapter.ArticleAdapter;
  8. import com.bzu.edu.gxs.adapter.Messages;
  9. import com.bzu.edu.gxs.view.MyListView;
  10. import com.bzu.gxs.*;
  11. import android.R.integer;
  12. import android.os.Bundle;
  13. import android.os.Handler;
  14. import android.os.Message;
  15. import android.app.Activity;
  16. import android.content.res.TypedArray;
  17. import android.view.Menu;
  18. import android.view.Window;
  19. import android.widget.ArrayAdapter;
  20. import android.widget.BaseAdapter;
  21. import android.widget.LinearLayout;
  22. public class MainActivity extends Activity {
  23. private MyListView mylistview=null;
  24. private List<Messages> list_msg=null;
  25. private BaseAdapter adapter=null;
  26. @Override
  27. protected void onCreate(Bundle savedInstanceState) {
  28. super.onCreate(savedInstanceState);
  29. requestWindowFeature(Window.FEATURE_NO_TITLE);
  30. setContentView(R.layout.activity_main);
  31. init();
  32. if(list_msg==null){
  33. getData();
  34. }
  35. adapter=new ArticleAdapter(this,list_msg);
  36. //设置监听器
  37. mylistview.setOnRershListener(new OnRershListener());
  38. mylistview.setAdapter(adapter);
  39. }
  40. private void getData() {
  41. // TODO Auto-generated method stub
  42. //获得xml的资源
  43. String names[];
  44. String article[];
  45. TypedArray img;
  46. int i;
  47. names=getResources().getStringArray(R.array.name);
  48. article=getResources().getStringArray(R.array.article);
  49. img=getResources().obtainTypedArray(R.array.head_photo);
  50. list_msg=new ArrayList<Messages>();
  51. for(i=0;i<names.length;i++){
  52. Messages message=new Messages();
  53. message.setImg(img.getDrawable(i));
  54. message.setName(names[i]);
  55. message.setArticel(article[i]);
  56. message.setRq(String.valueOf(new Random().nextInt(120)+"分钟前"));
  57. Date date=new Date();
  58. SimpleDateFormat simple=new SimpleDateFormat("MM-dd");
  59. message.setTime(simple.format(date));
  60. list_msg.add(message);
  61. }
  62. }
  63. private void init() {
  64. // TODO Auto-generated method stub
  65. mylistview=(MyListView)findViewById(R.id.myListView1);
  66. }
  67. @Override
  68. public boolean onCreateOptionsMenu(Menu menu) {
  69. getMenuInflater().inflate(R.menu.main, menu);
  70. return true;
  71. }
  72. Handler handler=new Handler(new Handler.Callback() {
  73. @Override
  74. public boolean handleMessage(Message arg0) {
  75. // TODO Auto-generated method stub
  76. if(arg0.what==0){
  77. //结束刷新
  78. mylistview.endOnRersh();
  79. }
  80. return false;
  81. }
  82. });
  83. //刷新接口实现类
  84. class OnRershListener implements OnRersh{
  85. //实现刷新接口的 方法,,在MyList中会回调该方法。
  86. //模拟
  87. @Override
  88. public void OnRershListener() {
  89. // TODO Auto-generated method stub
  90. new Thread(new Run()).start();//启动一个线程
  91. }
  92. }
  93. //线程接口实现类
  94. class Run implements Runnable{
  95. @Override
  96. public void run() {
  97. // TODO Auto-generated method stub
  98. try {
  99. Thread.sleep(2000);
  100. } catch (Exception e) {
  101. // TODO: handle exception
  102. e.printStackTrace();
  103. }
  104. handler.sendEmptyMessage(0);
  105. }
  106. }
  107. }
  108. </span>

ArticleAdapter.java

[html] view plaincopyprint?
  1. <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.edu.gxs.adapter;
  2. import java.util.List;
  3. import com.bzu.gxs.*;
  4. import android.content.Context;
  5. import android.view.LayoutInflater;
  6. import android.view.View;
  7. import android.view.ViewGroup;
  8. import android.widget.BaseAdapter;
  9. import android.widget.ImageView;
  10. import android.widget.LinearLayout;
  11. import android.widget.TextView;
  12. public class ArticleAdapter extends BaseAdapter {
  13. private List<Messages> list_mes=null;
  14. private Context context;
  15. public ArticleAdapter(Context context,List<Messages> list_mes) {
  16. // TODO Auto-generated constructor stub
  17. this.list_mes=list_mes;
  18. this.context=context;
  19. }
  20. @Override
  21. public int getCount() {
  22. // TODO Auto-generated method stub
  23. return list_mes.size();
  24. }
  25. @Override
  26. public Object getItem(int position) {
  27. // TODO Auto-generated method stub
  28. return list_mes.get(position);
  29. }
  30. @Override
  31. public long getItemId(int position) {
  32. // TODO Auto-generated method stub
  33. return position;
  34. }
  35. @Override
  36. public View getView(int position, View convertView, ViewGroup parent) {
  37. // TODO Auto-generated method stub
  38. ListItem listitem;
  39. if(convertView==null)
  40. {
  41. convertView=(LinearLayout)LayoutInflater.from(context).inflate(R.layout.layout_view, null);
  42. listitem=new ListItem();
  43. listitem.img=(ImageView)convertView.findViewById(R.id.head_img);
  44. listitem.name=(TextView)convertView.findViewById(R.id.name);
  45. //显示当前日期
  46. listitem.time=(TextView)convertView.findViewById(R.id.time);
  47. listitem.rq=(TextView)convertView.findViewById(R.id.rq);
  48. listitem.article=(TextView)convertView.findViewById(R.id.article);
  49. convertView.setTag(listitem);
  50. }else {
  51. listitem=(ListItem)convertView.getTag();
  52. }
  53. listitem.img.setImageDrawable(list_mes.get(position).getImg());
  54. listitem.name.setText(list_mes.get(position).getName());
  55. listitem.time.setText(list_mes.get(position).getTime());
  56. listitem.rq.setText(list_mes.get(position).getRq());
  57. listitem.article.setText(list_mes.get(position).getArticel());
  58. return convertView;
  59. }
  60. public class ListItem{
  61. ImageView img;
  62. TextView name;
  63. TextView time;
  64. TextView rq;
  65. TextView article;
  66. }
  67. }
  68. </span>

Messages.java

[html] view plaincopyprint?
  1. <span style="font-family:Comic Sans MS;font-size:12px;">package com.bzu.edu.gxs.adapter;
  2. import android.graphics.drawable.Drawable;
  3. public class Messages {
  4. private Drawable img;
  5. private String name;
  6. private String time;
  7. private String rq;
  8. private String articel;
  9. public Drawable getImg() {
  10. return img;
  11. }
  12. public void setImg(Drawable img) {
  13. this.img = img;
  14. }
  15. public String getName() {
  16. return name;
  17. }
  18. public void setName(String name) {
  19. this.name = name;
  20. }
  21. public String getTime() {
  22. return time;
  23. }
  24. public void setTime(String time) {
  25. this.time = time;
  26. }
  27. public String getRq() {
  28. return rq;
  29. }
  30. public void setRq(String rq) {
  31. this.rq = rq;
  32. }
  33. public String getArticel() {
  34. return articel;
  35. }
  36. public void setArticel(String articel) {
  37. this.articel = articel;
  38. }
  39. }</span><span style="font-family:Comic Sans MS;">
  40. </span>

android学习:模拟微博看看界面相关推荐

  1. Android学习——5个UI界面设计

    Android学习--5个UI界面设计 一.计算器 二.frameLayout(框架布局)实现登录界面 三.RelativeLayout相对布局实现登录界面 四.表格布局 五.多布局 一.计算器 &l ...

  2. [Android学习] 1. 简易登录界面设计

    通过对活动及控件的学习,今天制作一个简易登录界面.简要记录一下操作过程.遇到的问题及学到的经验,希望各位老师多多提出问题不吝赐教! 预期设计效果图  设计要求: 1.布局不限,参考上图: 2.利用Ed ...

  3. Android学习之路-----倒计时欢迎界面(更有条理)

    2019独角兽企业重金招聘Python工程师标准>>> Android学习之路-----倒计时欢迎界面(更有条理) 转载于:https://my.oschina.net/symahl ...

  4. Android学习之登陆界面设计(一)前后期准备以及相关配置

    Android学习之登陆界面设计(一)前后期准备以及相关配置 前言 成品 成品样式 成品特点 工具 系统配置 手机配置 Android Studio 3.6.3 SDK 图片来源 矢量图标库 Back ...

  5. Android学习之登陆界面设计(二)基本界面设计

    Android学习之登陆界面设计(二)基本界面设计 前提 绘图样式 - drawable bg_login_btn_submit.xml bg_login_panel_slide.xml bg_log ...

  6. Android学习笔记:Android基础知识点(不断更新中)

    1.Android学习笔记:OkHttp 2.Android学习笔记:更新UI的方法(UI线程和非UI线程) 3.Android学习笔记:Volley 4.Android学习笔记:Handler 5. ...

  7. 嵌入式Linux+Android学习路线图

    嵌入式Linux+Android学习路线图 2016-08-01 韦东山 百问科技 网站/论坛:www.100ask.net,www.100ask.org 淘     宝:100ask.taobao. ...

  8. 《Android学习指南》目录

    转自:http://android.yaohuiji.com/about Android学习指南的内容分类: 分类 描述 0.学习Android必备的Java基础知识 没有Java基础的朋友,请不要先 ...

  9. Android学习之网上商城(上)

    前言 又到了课设的时候,这次课设比较难受,因为两周时间中还有3门考试,在课设的时候还要复习,着实耗费了不少的精力,不过也收获多多,接下来总结一下本次课设中学到的东西 Android学习之网上商城(上) ...

最新文章

  1. AngularJs 1.5 $location获取url参数
  2. 为你的AliOS Things应用增加自定义cli命令
  3. 维护win10注册表
  4. 如何理解离散傅里叶变换(一)实数形式傅里叶变换
  5. 60-100-030-使用-Docker MySQL 8 主从复制
  6. 吴裕雄--天生自然 高等数学学习:空间直角坐标系
  7. SQL基础(3)-索引/触发器/视图操作
  8. 工作七年,从实习生到测试主管,我认识到倾听对一个人有多重要!
  9. C/C++存储区域划分(栈区,堆区,全局区,代码区)
  10. 熊猫压缩怎么使用_记录随时间变化的PagerDuty事件(使用熊猫)
  11. 线性代数拾遗(3)—— “系数矩阵的秩” 和 “齐次线性方程组基础解系向量个数” 的关系
  12. Android设备上一张图片的显示过程
  13. mysql中$和_在数据库中,$和#代表什么意思?
  14. vue.runtime.esm.js:620 [Vue warn]: Error in nextTick: “TypeError: Cannot convert object to primitive
  15. 微信小程序页面上面的名字怎么改_微信小程序取名|如何修改名字|取名规则!...
  16. 写一个函数,用户输入一个数判断是否是素数,并返弹出回值(又叫质数,只能被1和自身整数的数)
  17. ”舌上有龙泉,杀人不见血,生而为人,需得择善而行”
  18. 微软为阻止恶意软件侵害禁用Excel4.0宏、开源网站插件存在上万个安全漏洞|1月24日全球网络安全热点
  19. unravel AI图片动起来
  20. 酷乐萌机器人_《元气骑士》机器人末日科技实验体皮肤获得方法

热门文章

  1. 命令行教程,第一部分 — 导航目录
  2. 【金山文档】 2021级2021-2022学年第二学期大学物理实验考试表格-软件2112https://kdocs.cn/l/cmrTqjJ1ogsN
  3. Pycharm 远程debug项目配置
  4. SpringBoot后台搭建-创建restful接口,使用mybatisPlus实现分页
  5. 【BOI2007】逃跑问题 (BSOI2344)
  6. MySQL从入门到精通:多表查询的灵活运用_02
  7. php dwz,ThinkPHP+DWZ之DWZ自带编辑器图片上传
  8. 计算机鼠标左键不起作用,为什么电脑的左键点了不起作用
  9. DataWhale 组队学习爬虫 Task2
  10. 【广告联盟电商SEO】广告联盟网站收集