一   创建一个模板显示内容,并在主Activity中创建一个ListView。该模板自定义内容显示的格式。想要显示的内容都将按该模板的格式显示。

1.布局文件(模板)

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="10dip" >

<RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

<ImageView
                android:id="@+id/ItemIv"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_marginTop="5dip"
                android:src="@drawable/p1" />

<LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginLeft="7dip"
                android:layout_toRightOf="@+id/ItemIv"
                android:orientation="vertical" >

<RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" >

<TextView
                        android:id="@+id/ItemTvName"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:text="花花"
                        android:textColor="#FF3333"
                        android:textSize="16sp"
                        android:textStyle="bold"
                        android:typeface="sans" />
                </RelativeLayout>

<LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="5dip" >

<TextView
                        android:id="@+id/ItemTvInfo"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:minHeight="50px"
                        android:text="不要拿小人的错误来惩罚自己,不要在这些微不足道的事情上折磨浪费自己的宝贵时间"
                  
                        android:textSize="12sp" />
                </LinearLayout>
            </LinearLayout>
        </RelativeLayout>
    </LinearLayout>

2.MainActivity布局文件

<include layout="@layout/activity_title"/>
    <ListView
        android:id="@+id/Lv"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

二   创建实体类,自定义编辑的属性。创建一个类,使得显示的属性与各组件链接。

1.实体类

public class ListItem {
 private int imageUrl;
 private String name;
 private String info;
 public ListItem(int imageUrl,String namestr,String infostr){
  this.imageUrl=imageUrl;
  this.name=namestr;
  this.info=infostr;
 }
 public int getImageUrl(){
  return imageUrl;
 }
 public String getinfo(){
  return info;
 }
 public String getName(){
  return name;
 }
}

2.链接类

public class ViewCache {
 private View baseView;
 private TextView textViewname;
 private TextView textViewinfo;
 private ImageView imageView;
 public ViewCache(View baseView){
  this.baseView=baseView;
 }
 public TextView getnameTextView(){
  if(textViewname==null){
   
   textViewname=(TextView)baseView.findViewById(R.id.ItemTvName);
   
  }
  return textViewname;
  
 }
 public TextView getinfoTextView(){
  if(textViewinfo==null){
   textViewinfo=(TextView)baseView.findViewById(R.id.ItemTvInfo);
   
  }
  return textViewinfo;
 }
 public ImageView getImageView(){
  if(imageView==null){
   imageView=(ImageView)baseView.findViewById(R.id.ItemIv);
   
  }
  return imageView;
 }

三   自定义Adapter(适配器),并在MainActicity中调用。

1.自定义Adapter

public class ListViewAdapter extends ArrayAdapter<ListItem> {
 private ListView listview;
 public ListViewAdapter(Activity activity,List<ListItem> imageAndTexts,ListView listView) {
  super(activity,0,imageAndTexts);
  this.listview=listView;
 }
 public View getView(int position, View convertView, ViewGroup parent){
  Activity activity=(Activity)getContext();
  View rowView=convertView;
  ViewCache viewCache;
  if(rowView==null){
   LayoutInflater inflater=activity.getLayoutInflater();
   rowView=inflater.inflate(R.layout.activity_lostviewitem, null);
   viewCache=new ViewCache(rowView);
   rowView.setTag(viewCache);
  }
  else{
   viewCache=(ViewCache) rowView.getTag();
  }
  
  ListItem imageAndText=getItem(position);
  ImageView imageView=viewCache.getImageView();
  imageView.setImageResource(imageAndText.getImageUrl());
  TextView textViewname=viewCache.getnameTextView();
  textViewname.setText(imageAndText.getName());
     TextView textViewinfo=viewCache.getinfoTextView();
     textViewinfo.setText(imageAndText.getinfo());
    return rowView; 
 }

2.MainActivity类

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Integer[] imagesIds={R.drawable.p1,R.drawable.p2,R.drawable.p3,R.drawable.p4,R.drawable.p5,R.drawable.p6,R.drawable.p7,R.drawable.p8,R.drawable.p9,R.drawable.p10};
        String[] name={"牵我手","带我走","嘿嘿","哈哈","呵呵","嘻嘻","啦啦","呼呼","忽忽","呼呼"};
        String[] infostr={"生活是一面镜子。你对它笑,它就对你笑;你对它哭,它也对你哭。","活着一天,就是有福气,就该珍惜。当我哭泣我没有鞋子穿的时候,我发现有人却没有脚","人生是个圆,有的人走了一辈子也没有走出命运画出的圆圈,其实,圆上的每一个点都有一条腾飞的切线。","千万别迷恋网络游戏,要玩就玩好人生这场大游戏。","命运负责洗牌,但是玩牌的是我们自己!",
          "我们心中的恐惧,永远比真正的危险巨大的多",
          "命运掌握在自己手中。要么你驾驭生命,要么生命驾驭你,你的心态决定你是坐骑还是骑手。",
          "宁愿做过了后悔,也不要错过了后悔。",
          "不要拿小人的错误来惩罚自己,不要在这些微不足道的事情上折磨浪费自己的宝贵时间",
          "如果我们都去做自己能力做得到的事,我们会让自己大吃一惊。"};
        ListView listview=(ListView)findViewById(R.id.Lv);
        List<ListItem> list= new ArrayList<ListItem>();
        for(int i=0;i<name.length;i++){
         list.add(new ListItem(imagesIds[i],name[i],infostr[i])); 
        }
        listview.setAdapter(new ListViewAdapter(this,list,listview));
    }

四.  最后程序截图


通过这个程序可以增加对于Android中LisView的掌握与使用。同时加深了对于Adapter的理解与掌握。

模拟新浪微博随便看看(Android)相关推荐

  1. 模拟新浪微博随便看看界面布局

    模拟新浪微博随便看看界面布局,布局是利用listview控件,利用adapter使数据和空加你绑定到一起,由于只是为了模仿布局,因此数据是利用List集合设定好的. 布局:布局中标题栏的样式是新建的一 ...

  2. java模拟新浪微博_Java模拟新浪微博用户注册

    模拟新浪微博用户注册 User.java package gather.sina; public class User { private String username; private Strin ...

  3. android x86还是arm,Android x86是否模拟ARM?(Does Android x86 emulate ARM?)

    Android x86是否模拟ARM?(Does Android x86 emulate ARM?) 试图找出应用程序在为ARM编译时如何在VMWare上的Android x86上工作. GUI是否在 ...

  4. java模拟新浪微博_Java模拟新浪微博登陆抓取数据

    前言: 兄弟们来了来了,最近有人在问如何模拟新浪微博登陆抓取数据,我听后默默地抽了一口老烟,暗暗的对自己说,老汉是时候该你出场了,所以今天有时间就整理整理,浅谈一二. 首先: 要想登陆新浪微博需要预登 ...

  5. php模拟关注微博,PHP基于laravel框架获取微博数据之一 模拟新浪微博登录

    参考资料: http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/ http://blog.csdn.net/fly_leop ...

  6. php rsa2 微博,PHP 基于laravel框架获取微博数据之一 模拟新浪微博登录

    模拟新浪微博登录是抓取新浪数据的基础,网上的参考资料大多介绍的是用Python开发,有一篇使用php模拟登录的资料还是在phpcms中实现的,也没有太深入分析. PS:网上资料来源比较乱,不知道php ...

  7. android仿新浪微博随便看看

    程序界面 源代码 布局 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:a ...

  8. 全程模拟新浪微博登录(2015)

    很久之前就了解过模拟登录的过程,最近对python用的比较多,想来练练手,就想实现一下新浪微博登录,首先随便一搜,网上有大量的前辈们都做过了,我也仔细看了一下,并且参考之后发现无法登录,而且还有很多细 ...

  9. android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件

    看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...

最新文章

  1. C#开发Unity游戏教程之Scene视图与脚本的使用
  2. leetcode刷题实录:2
  3. linux脚本登录启动失败,linux-从bash脚本启动进程失败
  4. python 单例模式的四种实现方法
  5. java类成员方法(成员函数)的初步介绍
  6. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
  7. mybatis 存储过程 tmp_count_mysql存储过程(一)-navicat与mybatis
  8. 一个程序员的爱情和他的小棉袄
  9. mysql存表情出错的解决方案(类似\xF0\x9F\x98\x86\xF0\x9F)
  10. 重装的电脑360打补丁都是智能忽略
  11. 国内社交网络信息开放平台汇总
  12. 面对突如其来的新冠,“AI”可以做点什么?
  13. 【整理】关于Android图形系统的一些事实真相
  14. jq小插件tiptip
  15. EChart自定义饼图颜色
  16. 如果你相中上了一个程序员小伙
  17. 用html画一个企鹅图案的代码,6张思维导图,帮你搞定html、css(css画QQ企鹅)
  18. Mysql数据处理,按照半小时汇总数据,
  19. 检测乳腺癌细胞中的有丝分裂(3)
  20. AtCoder 001 A BBQ Easy

热门文章

  1. java绘画图形_java – 动态图形对象绘画
  2. Linux启动和内核管理
  3. 订单服务-----功能实现逻辑
  4. vscode 识别非.lua后缀的代码文件 比如.txt .bytes , 或者不显示某些特定的文件
  5. 用量子计算机创造史上首个虫洞 加州理工学院团队发Nature封面文章
  6. 移远EC200T 4G LTE模块在MDK9X25L-EK(AT91SAM9X25)平台的应用演示
  7. excel怎么把重复项合并(excel快速合并相同单元格技巧)
  8. Vim 多行 批量复制操作
  9. Guzzle命令使用场景及实现分析
  10. matebookxpro上鸿蒙系统,笔记本只能选苹果?华为MateBookXPro超过性价比,让果粉秒变花粉...