• Android之listview运用(美团美食列表)


       首先我们将listview简单实现,有图形,有文字:效果如图

                                        

     



     

     

     

     

        之前我们完成了一个较为简单的listview视图列表,但是生活中我们往往碰到的

    是更为复杂列表,有图像有评分标准,不如我们来试一试手,做一个琳琅满目的美团美食列表,在看的口水涟涟份上我们来实现它。

    首先我们定义模板,也是第一次在安卓中接触模板概念,在layout里定义模板文件,data_list.xml

    Java代码  收藏代码
    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     android:id="@+id/LinearLayout1"  
    3.     android:layout_width="match_parent"  
    4.     android:layout_height="match_parent"  
    5.     android:orientation="horizontal" >  
    6.   
    7.     <ImageView  
    8.         android:id="@+id/pic"  
    9.         android:padding="3px"  
    10.         android:layout_width="wrap_content"  
    11.         android:layout_height="wrap_content"  
    12.         />  
    13.   
    14.     <LinearLayout  
    15.         android:layout_width="200px"  
    16.         android:layout_height="wrap_content"  
    17.         android:gravity="left"  
    18.         android:orientation="vertical" >  
    19.   
    20.         <TextView  
    21.             android:id="@+id/title"  
    22.             android:padding="3px"  
    23.             android:textSize="26px"  
    24.             android:layout_width="wrap_content"  
    25.             android:layout_height="wrap_content"  
    26.             android:text="TextView" />  
    27.   
    28.         <TextView  
    29.             android:id="@+id/author"  
    30.             android:padding="3px"  
    31.             android:textSize="15px"  
    32.             android:layout_width="wrap_content"  
    33.             android:layout_height="wrap_content"  
    34.             android:text="TextView" />  
    35.   
    36.     </LinearLayout>  
    37.   
    38.     <LinearLayout  
    39.         android:layout_width="match_parent"  
    40.         android:layout_height="wrap_content"  
    41.         android:orientation="vertical" >  
    42.   
    43.         <ImageView  
    44.             android:id="@+id/score"  
    45.              android:padding="5px"  
    46.             android:layout_width="wrap_content"  
    47.             android:layout_height="wrap_content"  
    48.             />  
    49.   
    50.         <TextView  
    51.             android:id="@+id/type"  
    52.              android:padding="5px"  
    53.             android:layout_width="wrap_content"  
    54.             android:layout_height="wrap_content"  
    55.             android:text="TextView" />  
    56.   
    57.     </LinearLayout>  
    58.   
    59. </LinearLayout>  

     

    也就是这样:

    然后在main.xml布局文件定义:

     

    Java代码  收藏代码
    1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    2.     xmlns:tools="http://schemas.android.com/tools"  
    3.     android:id="@+id/LinearLayout1"  
    4.     android:layout_width="fill_parent"  
    5.     android:layout_height="fill_parent"  
    6.     android:orientation="vertical"  
    7.     android:paddingBottom="@dimen/activity_vertical_margin"  
    8.     android:paddingLeft="@dimen/activity_horizontal_margin"  
    9.     android:paddingRight="@dimen/activity_horizontal_margin"  
    10.     android:paddingTop="@dimen/activity_vertical_margin"  
    11.     tools:context=".MainActivity" >  
    12.   
    13.     <TextView  
    14.         android:id="@+id/textView1"  
    15.         android:textSize="50px"  
    16.         android:gravity="center_horizontal"  
    17.         android:layout_width="wrap_content"  
    18.         android:layout_height="wrap_content"  
    19.         android:text="美食列表" />  
    20.   
    21.     <ListView   //这里之后我们会把模板嵌入进去  
    22.         android:id="@+id/datalist"  
    23.         android:layout_width="fill_parent"  
    24.         android:layout_height="wrap_content" >  
    25.     </ListView>  
    26.   
    27. </LinearLayout>  

    以上的listview只是一个名字定义,我们建立好模板就可以代入进去,如何代入还是用Simpleadapter适配器,这部分实现要在MainActivity.java里实现,首先我们准备好几张美食图片,以及打分。

    然后在代码里实现:

     

     

    Java代码  收藏代码
    1. public class MainActivity extends Activity {  
    2.   
    3.     private int[] pic=new int[]{R.drawable.a1,R.drawable.a2,R.drawable.a3,R.drawable.a4  
    4.             ,R.drawable.a5,R.drawable.a6};  
    5.     private String data[][]=new String[][]{{"来御来三汁焖锅","烧烤烤肉"},{"SPK思必客麻辣香锅","烧烤烤肉"},  
    6.             {"冰果彩虹","蛋糕甜点"},{"德克士","小吃快餐"},{"老北京炸酱面","小吃快餐"},{"铁板传奇","其他美食"}};  
    7.     private List<Map<String,String>> list=new ArrayList<Map<String,String>>();  
    8.     private ListView datalist;  
    9.     private SimpleAdapter simpleadapter=null;  
    10.     protected void onCreate(Bundle savedInstanceState) {  
    11.         super.onCreate(savedInstanceState);  
    12.         setContentView(R.layout.activity_main);  
    13.         this.datalist=(ListView)super.findViewById(R.id.datalist);  
    14.         for(int i=0;i<data.length;i++){  
    15.             Map map=new HashMap<String,String>();  
    16.             map.put("pic", String.valueOf(this.pic[i]));  
    17.             map.put("title"this.data[i][0]);  
    18.             map.put("author",this.data[i][1]);  
    19.             map.put("score",String.valueOf(R.drawable.star) );  
    20.             map.put("type""岳麓区天马");  
    21.               
    22.             this.list.add(map);  
    23.         }  
    24.         this.simpleadapter=new SimpleAdapter(this,this.list,R.layout.data_list,  
    25.                 new String[]{"pic","title","author","score","type"}  
    26.         ,new int[]{R.id.pic,R.id.title,R.id.author,R.id.score,R.id.type});  
    27.         this.datalist.setAdapter(this.simpleadapter);  
    28.     }  
    29.   
    30.     @Override  
    31.     public boolean onCreateOptionsMenu(Menu menu) {  
    32.         // Inflate the menu; this adds items to the action bar if it is present.  
    33.         getMenuInflater().inflate(R.menu.main, menu);  
    34.         return true;  
    35.     }  
    36.   
    37. }  

     

    如同上节课一样,一一匹配,首先将图片之类的统统存入数组,数组统统存入map健和value值,然后将map存入list队列里面,然后加入到适配器里面进行分封装,然后ListView就坐享其成得到这个适配器。

    然后我们的美团列表就冰果诞生了:



     

  • 相关阅读:
    图解Eclipse中配置Maven并创建Maven的Web工程
    Bzoj1922: [Sdoi2010]大陆争霸
    Bzoj2007: [Noi2010]海拔
    Bzoj5212: [Zjoi2018]历史
    NOIP2017:列队
    NOIP2017:逛公园
    CF908D New Year and Arbitrary Arrangement
    HDU4652:Dice
    HDU4336:Card Collector(min-max容斥)
    [NOI2017]游戏
  • 原文地址:https://www.cnblogs.com/xiaochao1234/p/4380816.html
Copyright © 2020-2023  润新知