安卓 新浪微博随便看看

安卓 新浪微博随便看看关于 UI 布局中 listView 控件的使用 该篇的功能是实现简单的微博随便看看 1 创建数据源 2 创建适配器 3 建立 Adapter 和数据的关联 建立 AdapterView 和 Adapter 之间的关联 下面分别摘取几个比较重要的代码 MainActivity java 1importjava text SimpleDateFo 2importjava

  关于UI布局中,listView控件的使用:(该篇的功能是实现简单的微博随便看看)

1:创建数据源

2:创建适配器

3:建立Adapter和数据的关联,建立AdapterView和Adapter之间的关联。

下面分别摘取几个比较重要的代码:

MainActivity.java:

 1 import java.text.SimpleDateFormat;  2 import java.util.ArrayList;  3 import java.util.Date;  4 import java.util.List;  5 import java.util.Random;//导入Random,方便下面对访问人气的随机数生成  6  7 import bzu.edu.hou.adapter.ArticleAdapter;  8 import bzu.edu.hou.adapter.Messages;  9 import bzu.edu.hou.view.MyListView; 10 import android.R.integer; 11 import android.os.Bundle; 12 import android.os.Handler; 13 import android.os.Message; 14 15 16 import android.app.Activity; 17 import android.content.res.TypedArray; 18 import android.view.Menu; 19 import android.view.Window; 20 import android.widget.ArrayAdapter; 21 import android.widget.BaseAdapter; 22 import android.widget.LinearLayout; 23 24 public class MainActivity extends Activity { 25 26 private MyListView mylistview=null; 27 private List 
  
    list_msg= 
   null 
   ;  
   28 
   private BaseAdapter adapter= 
   null 
   ;  
   29 
    @Override  
   30 
   protected 
   void 
    onCreate(Bundle savedInstanceState) {  
   31 
    super.onCreate(savedInstanceState);  
   32 
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
   33 
    setContentView(R.layout.activity_main);  
   34 
   35 
    init();  
   36 
   if(list_msg== 
   null 
   ){//判断是否为空  
   37 
    getData();  
   38 
    }  
   39 
   40 
   41 adapter= 
   new ArticleAdapter( 
   this 
   ,list_msg);  
   42 
   43 
   44 
    mylistview.setAdapter(adapter);  
   45 
    }  
   46 
   47 
   48 
   49 
   private 
   void 
    getData() {  
   50 
   51 
   // 
   获得xml的资源 
   52 
    String names[];  
   53 
    String article[];  
   54 
    TypedArray img;  
   55 
   int 
    i;  
   56 
   57 names= 
   getResources().getStringArray(R.array.name);  
   58 article= 
   getResources().getStringArray(R.array.article);  
   59 img= 
   getResources().obtainTypedArray(R.array.head_photo);  
   60 
   61 list_msg= 
   new ArrayList 
    
    ();  
    62 
    for(i= 
    0;i 
    
      ){ 
     63 Messages message= 
     new 
      Messages();  
     64 
      message.setImg(img.getDrawable(i));  
     65 
      message.setName(names[i]);  
     66 
      message.setArticel(article[i]);  
     67 message.setRq( 
     " 
     人气: 
     "+String.valueOf( 
     new Random().nextInt( 
     1000 
     )));  
     68 Date date= 
     new 
      Date();  
     69 SimpleDateFormat simple= 
     new SimpleDateFormat( 
     " 
     MM-dd 
     " 
     );//格式化生成的时间  
     70 
      message.setTime(simple.format(date));  
     71 
      list_msg.add(message);  
     72 
      }  
     73 
      }  
     74 
     private 
     void 
      init() {  
     75 
     76 mylistview= 
     (MyListView)findViewById(R.id.myListView1);  
     77 
     78 
      } 79 }  
     
    
  

2:适配器:

 1 import java.util.List;  2 import android.content.Context;  3 import android.view.LayoutInflater;  4 import android.view.View;  5 import android.view.ViewGroup;  6 import android.widget.BaseAdapter;  7 import android.widget.ImageView;  8 import android.widget.LinearLayout;  9 import android.widget.TextView; 10 /××如果AiticleAdapter继承的是ArrayAdapter就只需要重写getView()方法,如果继承的是BaseAdapter就需要重写getCount(),getItem()等方法。××/ 11 public class ArticleAdapter extends BaseAdapter 12 { 13 private List 
  
    list_mes = 
   null 
   ;  
   14 
   private 
    Context context;  
   15 
   16 
   public ArticleAdapter(Context context, List 
    
     list_mes)  
    17 
     {  
    18 
    this.list_mes = 
     list_mes;  
    19 
    this.context = 
     context;  
    20 
     }  
    21 
    22 
     @Override  
    23 
    public 
    int 
     getCount()  
    24 
     {  
    25 
    // 
     TODO Auto-generated method stub 
    26 
    return 
     list_mes.size();  
    27 
     }  
    28 
    29 
     @Override  
    30 
    public Object getItem( 
    int 
     position)  
    31 
     {  
    32 
    return list_mes. 
    get 
    (position);  
    33 
     }  
    34 
    35 
     @Override  
    36 
    public 
    long getItemId( 
    int 
     position)  
    37 
     {  
    38 
    return 
     position;  
    39 
     }  
    40 
    41 
     @Override  
    42 
    public View getView( 
    int 
     position, View convertView, ViewGroup parent)  
    43 
     {  
    44 
     ListItem listitem;  
    45 
    if (convertView == 
    null 
    )//此处加上对convertView的判断操作  
    46 
     {  
    47 convertView = (LinearLayout) LayoutInflater. 
    from(context).inflate(R.layout.list_layout, 
    null 
    );//将后面需要显示的数据进行压入布局中。  
    48 
    49 listitem = 
    new 
     ListItem();  
    50 listitem.img = 
     (ImageView) convertView.findViewById(R.id.head_img);  
    51 listitem.name = 
     (TextView) convertView.findViewById(R.id.name);  
    52 listitem.time = 
     (TextView) convertView.findViewById(R.id.time);//注意:此处查找组件不同于以前的查找组件。  
    53 listitem.rq = 
     (TextView) convertView.findViewById(R.id.rq);  
    54 listitem.article = 
     (TextView) convertView.findViewById(R.id.article);  
    55 
    56 
     convertView.setTag(listitem);  
    57 } 
    else 
    58 
     {  
    59 listitem = 
     (ListItem) convertView.getTag();  
    60 
     }  
    61 
    62 listitem.img.setImageDrawable(list_mes. 
    get 
    (position).getImg());  
    63 listitem.name.setText(list_mes. 
    get 
    (position).getName());  
    64 listitem.time.setText(list_mes. 
    get 
    (position).getTime());  
    65 listitem.rq.setText(list_mes. 
    get 
    (position).getRq());  
    66 listitem.article.setText(list_mes. 
    get 
    (position).getArticel());  
    67 
    return 
     convertView;  
    68 
     }  
    69 
    70 
    public 
    class 
     ListItem  
    71 
     {  
    72 
     ImageView img;  
    73 
     TextView name;  
    74 
     TextView time;  
    75 
     TextView rq;  
    76 
     TextView article;  
    77 
     }  
    78 } 
    
  

3:布局文件:

在显示布局中,无非是实现布局的嵌套。如:list_layout.xml:在该布局中,使用线性布局,相对布局,ImageView等层层嵌套达到预期的效果。在布局嵌套中,应该明确布局间的关系。(但:下面代码有个不足之处:对于text文本的引用,应该尽量在string.xml中进行引用,下面采用了硬编码方式,不值得提倡。)

 1 
  "1.0" encoding="utf-8"?>  2 
  
    " 
   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= 
   " 
   #FF6666 
   " 
   34 android:textSize= 
   " 
   16sp 
   " 
   35 android:typeface= 
   " 
   sans 
   " 
   36 android:textStyle= 
   " 
   bold 
   " 
   37 android:text= 
   " 
   星星 
   "/> 
   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= 
   " 
   # 
   " 
   46 android:textSize= 
   " 
   12sp 
   " 
   47 android:text= 
   " 
   12:11 
   "/> 
   48 
   49 < 
   TextView  
   50 android:id= 
   " 
   @+id/rq 
   " 
   51 android:layout_width= 
   " 
   wrap_content 
   " 
   52 android:layout_height= 
   " 
   wrap_content 
   " 
   53 android:layout_alignParentRight= 
   " 
   true 
   " 
   54 android:layout_centerVertical= 
   " 
   true 
   " 
   55 android:textSize= 
   " 
   9sp 
   " 
   56 android:text= 
   " 
   123 
   "/> 
   57 
   58 < 
   LinearLayout  
   59 android:layout_width= 
   " 
   match_parent 
   " 
   60 android:layout_height= 
   " 
   wrap_content 
   " 
   61 android:layout_marginTop= 
   " 
   5dip 
   "> 
   62 < 
   TextView  
   63 android:id= 
   " 
   @+id/article 
   " 
   64 android:layout_width= 
   " 
   match_parent 
   " 
   65 android:layout_height= 
   " 
   wrap_content 
   " 
   66 android:minHeight= 
   " 
   50px 
   " 
   67 android:textSize= 
   " 
   12sp 
   " 
   68 android:text= 
   " 
   种不同的1 
   "/> 
   69 
   70 71 72 

该程序实现的效果如下所示:

安卓 新浪微博随便看看

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/222088.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:36
下一篇 2026年3月17日 下午4:36


相关推荐

  • 苹果新旧手机数据转移_换机必备知识:如何将数据转移到Oppo手机上

    苹果新旧手机数据转移_换机必备知识:如何将数据转移到Oppo手机上现在的智能手机越来越便宜了,换手机是经常的事情。但唯一的缺点是更换手机时新旧手机的数据备份很麻烦。许多人会选择将数据传输到计算机,然后再传输到新手机。或者,用户将可以备份的内容备份到microSD卡上。但这些方法都比较老土。如今,智能手机制造商拥有专用的应用程序,可以使此过程变得轻松,高效和无缝。本指南将教您如何将所有个人数据(SMS,电话,应用程序,照片等)从旧手机转移到Oppo品牌的手机上。…

    2022年5月25日
    228
  • x201换风扇_「x201拆机」联想 Thinkpad x201i怎么拆机清理风扇灰尘? – seo实验室[通俗易懂]

    x201换风扇_「x201拆机」联想 Thinkpad x201i怎么拆机清理风扇灰尘? – seo实验室[通俗易懂]x201拆机笔记本散热风扇使用时间长了就累积很多灰尘,堵塞出风口,从而大幅降低散热效果。因此有必要对其清理。要彻底清理风扇灰尘,需要拆机方可。首先要把笔记本的电池取下。电池取下后,我们就可以开始拆卸内存了,首先要把内存外壳拆下。拆下内存盖后,我们只要把两边的卡扣松动,轻轻一拔即可把内存取下。这款笔记本的硬盘仓很隐蔽,不过在D面还是有明显的图标提示,拧下螺丝和卡扣,即可看到硬盘。硬盘盖拆下来之后,只…

    2022年6月27日
    126
  • cmd cd 无法切换目录_cd切换盘符

    cmd cd 无法切换目录_cd切换盘符在windows下,打开cmd.exe,默认进入到当前用户主目录下,发现除了C:\盘,可以通过cd..,cd,dir去到C:\盘的各个目录外,不能通过cdd:进入到其他盘可以在c盘各个目录自由切换不能通过cdd:进入到其他盘,仍停留在原来的位置有两种方式可以解决这个问题:cd/dd:在cd和盘符之间加上/de:

    2022年10月3日
    4
  • flex布局垂直居中

    flex布局垂直居中使用flex布局实现下面图中效果:外框高都为400px,边框为2px;圆的宽高为100px;中圆是水平居中;下圆是水平居中以及相对于中圆垂直居中(下圆到中圆的距离和下圆到下边框的距离相等)。效果如图:我的实现方法是笨办法,大佬们多指点<divclass=”box”><divclass=”item”><divclass=”child”></div></di

    2022年6月12日
    39
  • SpringBoot使用@Mapper和@MapperScan注解无效的解决方法

    SpringBoot使用@Mapper和@MapperScan注解无效的解决方法在使用@Mapper注解时,注解无效,service层,dao层该添加的注解都添加了,最后发现是少加了一个jar包&amp;lt;!–缺少此jar包,导致@Mapper注解无效–&amp;gt;&amp;lt;dependency&amp;gt;&amp;lt;groupId&amp;gt;org.mybatis.spring.boot&amp;lt;/groupId&amp;gt;

    2022年6月10日
    61
  • 小米下手速度真快,小米版OpenClaw来了!手机就能养龙虾

    小米下手速度真快,小米版OpenClaw来了!手机就能养龙虾

    2026年3月12日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号