模拟新浪微博随便看看(Android)
一 创建一个模板显示内容,并在主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)相关推荐
- 模拟新浪微博随便看看界面布局
模拟新浪微博随便看看界面布局,布局是利用listview控件,利用adapter使数据和空加你绑定到一起,由于只是为了模仿布局,因此数据是利用List集合设定好的. 布局:布局中标题栏的样式是新建的一 ...
- java模拟新浪微博_Java模拟新浪微博用户注册
模拟新浪微博用户注册 User.java package gather.sina; public class User { private String username; private Strin ...
- android x86还是arm,Android x86是否模拟ARM?(Does Android x86 emulate ARM?)
Android x86是否模拟ARM?(Does Android x86 emulate ARM?) 试图找出应用程序在为ARM编译时如何在VMWare上的Android x86上工作. GUI是否在 ...
- java模拟新浪微博_Java模拟新浪微博登陆抓取数据
前言: 兄弟们来了来了,最近有人在问如何模拟新浪微博登陆抓取数据,我听后默默地抽了一口老烟,暗暗的对自己说,老汉是时候该你出场了,所以今天有时间就整理整理,浅谈一二. 首先: 要想登陆新浪微博需要预登 ...
- php模拟关注微博,PHP基于laravel框架获取微博数据之一 模拟新浪微博登录
参考资料: http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/ http://blog.csdn.net/fly_leop ...
- php rsa2 微博,PHP 基于laravel框架获取微博数据之一 模拟新浪微博登录
模拟新浪微博登录是抓取新浪数据的基础,网上的参考资料大多介绍的是用Python开发,有一篇使用php模拟登录的资料还是在phpcms中实现的,也没有太深入分析. PS:网上资料来源比较乱,不知道php ...
- android仿新浪微博随便看看
程序界面 源代码 布局 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:a ...
- 全程模拟新浪微博登录(2015)
很久之前就了解过模拟登录的过程,最近对python用的比较多,想来练练手,就想实现一下新浪微博登录,首先随便一搜,网上有大量的前辈们都做过了,我也仔细看了一下,并且参考之后发现无法登录,而且还有很多细 ...
- android 模拟点击localinstrumentation,Android Instrumentation模拟鼠标点击事件
看了几遍网上的博客一直没有 模拟出鼠标点击事件和按钮事件,后来抱着试试态度再重试的时候终于有所斩获.下面把具体的情况记录一下: 首先我们必须了解类 Instrumentation: Instrumen ...
最新文章
- C#开发Unity游戏教程之Scene视图与脚本的使用
- leetcode刷题实录:2
- linux脚本登录启动失败,linux-从bash脚本启动进程失败
- python 单例模式的四种实现方法
- java类成员方法(成员函数)的初步介绍
- Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization
- mybatis 存储过程 tmp_count_mysql存储过程(一)-navicat与mybatis
- 一个程序员的爱情和他的小棉袄
- mysql存表情出错的解决方案(类似\xF0\x9F\x98\x86\xF0\x9F)
- 重装的电脑360打补丁都是智能忽略
- 国内社交网络信息开放平台汇总
- 面对突如其来的新冠,“AI”可以做点什么?
- 【整理】关于Android图形系统的一些事实真相
- jq小插件tiptip
- EChart自定义饼图颜色
- 如果你相中上了一个程序员小伙
- 用html画一个企鹅图案的代码,6张思维导图,帮你搞定html、css(css画QQ企鹅)
- Mysql数据处理,按照半小时汇总数据,
- 检测乳腺癌细胞中的有丝分裂(3)
- AtCoder 001 A BBQ Easy
热门文章
- java绘画图形_java – 动态图形对象绘画
- Linux启动和内核管理
- 订单服务-----功能实现逻辑
- vscode 识别非.lua后缀的代码文件 比如.txt .bytes , 或者不显示某些特定的文件
- 用量子计算机创造史上首个虫洞 加州理工学院团队发Nature封面文章
- 移远EC200T 4G LTE模块在MDK9X25L-EK(AT91SAM9X25)平台的应用演示
- excel怎么把重复项合并(excel快速合并相同单元格技巧)
- Vim 多行 批量复制操作
- Guzzle命令使用场景及实现分析
- matebookxpro上鸿蒙系统,笔记本只能选苹果?华为MateBookXPro超过性价比,让果粉秒变花粉...