模拟微博看看--ListView的应用

ListView在模拟微博看看时的应用

  使用listview来完成模拟微博随便看看(--应老师要求完成作业--)

  作业要求实现如下效果图:

  

  如下为我自己的程序效果截图:

  分析问题:

1.ListView及ListView_Item的使用

2.实体类

3.ListView自定义适配器的书写

4.ListView的绑定数据源与控件

5.继承:BaseAdapter

  如下为我自己的代码:(自定义适配器)

 1 package cn.edu.bzu.adapter;
 2
 3 import java.util.List;
 4
 5 import cn.edu.bzu.entity.Information;
 6 import cn.edu.bzu.weibo_looking.R;
 7 import android.content.Context;
 8 import android.view.LayoutInflater;
 9 import android.view.View;
10 import android.view.ViewGroup;
11 import android.widget.BaseAdapter;
12 import android.widget.ImageView;
13 import android.widget.TextView;
14
15 /**
16  * 自定义Adapter实现listView的显示
17  * @author monster
18  * @date : 2015-04-28
19  */
20 public class MyAdapter extends BaseAdapter {
21     private List<Information> list;
22     private Context mContext;
23     private LayoutInflater mInflater;
24     //定义构造方法
25     public MyAdapter(List<Information> list, Context mContext) {
26         super();
27         this.list = list;
28         this.mContext = mContext;
29     }
30
31     @Override
32     public int getCount() {
33         return list.size();
34     }
35
36     @Override
37     public Object getItem(int position) {
38         return list.get(position);
39     }
40
41     @Override
42     public long getItemId(int position) {
43         return position;
44     }
45
46     @Override
47     public View getView(int position, View convertView, ViewGroup parent) {
48         ViewHolder holder=null;
49         if(convertView==null){
50             convertView=mInflater.from(mContext).inflate(R.layout.listview_item,null);  //布局转换成视图
51             holder=new ViewHolder();
52             //实例化控件
53             holder.Image=(ImageView)convertView.findViewById(R.id.Iv);
54             holder.Name=(TextView)convertView.findViewById(R.id.Name);
55             holder.Time=(TextView)convertView.findViewById(R.id.Time);
56             holder.Contents=(TextView)convertView.findViewById(R.id.Contents);
57             convertView.setTag(holder); //设置setTag使得程序得以优化
58         }else{
59             holder=(ViewHolder) convertView.getTag();
60         }
61         //给控件赋值
62         holder.Image.setBackgroundResource(list.get(position).getImgId());
63         holder.Name.setText(list.get(position).getName());
64         holder.Time.setText(list.get(position).getDate());
65         holder.Contents.setText(list.get(position).getContent());
66         return convertView;
67     }
68
69     class ViewHolder{
70         ImageView Image;
71         TextView  Name;
72         TextView  Time;
73         TextView  Contents;
74     }
75 }

   分析问题:

在上述自定义适配器MyAdapter代码中,getView方法最为重要,还需要getCount,getItem,getItemId等方法。

   如下为MainActivity代码:

 1 package cn.edu.bzu.weibo_looking;
 2
 3 import java.util.ArrayList;
 4 import java.util.List;
 5
 6 import cn.edu.bzu.adapter.MyAdapter;
 7 import cn.edu.bzu.entity.Information;
 8 import android.os.Bundle;
 9 import android.widget.ListView;
10 import android.app.Activity;
11
12 public class MainActivity extends Activity {
13     private ListView listView;
14     private MyAdapter adapter;
15     private List<Information> list;
16     @Override
17     protected void onCreate(Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_main);
20         setData();//数据源
21          initView();
22     }
23     private void initView() {
24         // 初始化控件
25         listView=(ListView) findViewById(R.id.Lv);
26         listView.setAdapter(adapter);  //绑定适配器
27     }
28     private void setData() {
29         // 设置数据源
30          list=new ArrayList<Information>();
31         list.add(new Information(R.drawable.img1,"wang","2015-05-08","月落乌啼霜满天"));
32         list.add(new Information(R.drawable.img2, "dufu", "2015-05-08", "江枫渔火对愁眠"));
33         list.add(new Information(R.drawable.img3,"libai","2015-05-08","姑苏城外寒山寺"));
34         list.add(new Information(R.drawable.img4,"hades","2015-05-08","夜半钟声到客船"));
35         adapter=new MyAdapter(list, MainActivity.this);
36     }
37 }

分析问题:

1.数据源的建立与设置

2.控件使用(初始化)

3.适配器的绑定

  

时间: 2024-11-07 08:26:26

模拟微博看看--ListView的应用的相关文章

模拟微博

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>无标题文档</title> <style> li{ border-bottom:1px dashed gray;} </style> <script>

模拟微博发布

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style type="text/css"> *{margin:0;padding: 0;} .one{width: 400px;background: gray;margin: 10px

模拟微博登录

先读取登录的邮箱和口令,然后按照weibo.cn的登录页的格式以username=xxx&password=xxx的编码传入: from urllib import request, parse print('Login to weibo.cn...') email = input('Email: ') passwd = input('Password: ') login_data = parse.urlencode([ ('username', email), ('password', pas

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

参考资料:http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/http://blog.csdn.net/fly_leopard/article/details/51148904http://www.tuicool.com/articles/uIJzYff http://blog.csdn.net/u010029983/article/details/46364113等 模拟新浪微博登录是抓取新浪数据的基础,网上的参考资料

C# 模拟登入微博,实现分享

最近自己想模拟微博登入(无验证码的情况),想分享一些歌曲.很多代码都是网上找到,现在整理一下. 1.加载我需要分享页面的数据. var httpReq = (HttpWebRequest)WebRequest.Create("http://pop.weibo.com/ajax_getdata?type=trend&date=" + DateTime.Now.ToShortDateString()); httpReq.Referer = "http://pop.weib

php 新浪通行证登录 新浪微博登录 模拟登录 (浏览器版) 2016

由于需要项目需要管理微博平台内容,集成登录微博管理平台功能,所以在抓取网页基础上探索了一下浏览器模拟登录,已经实现登录功能,采用JQuery和php结合的方式实现的,其中需要注意跨域访问问题,代码如下: <?php /** * tom 2016年4月12日10:37:08 模拟微博登录 */ class login_weibo2 { // 微博用户名称密码 private $username = ''; private $password = ''; //请求cookie private $re

php 新浪通行证、新浪微博模拟统一登录 (后台网页抓取版) 2016

前几天做了一个Java的新浪通行证模拟登录测试.现在给大家一个php的新浪通行证.微博登录的示例:具体都有备注,大家阅读代码吧. <?php /** * tom 2016年4月12日10:37:08 模拟微博登录 */ class login_weibo { // 微博用户名称密码 private $username = ''; private $password = ''; //请求cookie private $request_cookie = ''; //预登陆返回json private

2016.01.21 UITabBarController

UITabBarController是IOS中很常用的一个viewController.UITabBarController通常作为整个程序的rootViewController,而且不能添加到别的container viewController中.可以轻松地管理多个控制器,轻松完成控制器之间的切换,典型的例子就是QQ.微信.微博等应?. ?.创建 在storyboard中的模拟我们就不多说了,直接进入直接代码的编写.(模拟微博的tabBarController进行编写) 我们选择在Applic

实现系统滚动条换肤功能

http://blog.sina.com.cn/s/blog_4c3538470100gews.html 1 实现系统滚动条换肤功能 对于Windows系统中各种控件换肤功能,要数滚动条的换肤最难实现了,尤其是控件自带的系统滚动条,如Edit.ListBox.ListView.TreeView等自带的系统滚动条,要想实现其自定义的皮肤功能,用常规办法似乎都无法实现. 对于常规的皮肤定制一般都是通过定制WM_PAINT.WM_ERASEBKGND.WM_CTLCOLORxxx.NM_CUSTOMD