安卓开发之带图标的列表

学习使用ListView组件和SimapleAdapter适配器实现一个带图标的ListView列表

总共3部分

一、MainActivity.java文件

 1 package xqx;
 2
 3 import java.util.ArrayList;
 4 import java.util.HashMap;
 5 import java.util.List;
 6 import java.util.Map;
 7
 8 import com.example.test.R;
 9
10 import android.app.Activity;
11 import android.content.res.TypedArray;
12 import android.os.Bundle;
13 import android.view.View;
14 import android.view.View.OnClickListener;
15 import android.view.ViewGroup;
16 import android.widget.AdapterView;
17 import android.widget.AdapterView.OnItemClickListener;
18 import android.widget.BaseAdapter;
19 import android.widget.Gallery;
20 import android.widget.ImageView;
21 import android.widget.ListView;
22 import android.widget.SimpleAdapter;
23 import android.widget.Toast;
24
25 public class MainActivity extends Activity{
26
27     private ListView listview;
28     @Override
29     protected void onCreate(Bundle savedInstanceState) {
30         // TODO Auto-generated method stub
31         super.onCreate(savedInstanceState);
32
33         setContentView(R.layout.mainactivity);
34         //获取列表视图
35         listview = (ListView) findViewById(R.id.listView1);
36         //定义并初始化保存图片ID的数组
37         int [] imageId = new int[]{R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu,R.drawable.menu_chapu};
38         //定义并初始化保存列表项文字的数组
39         String[] title = new String[]{"茶忌","茶具","茶疗","茶谱","更多"};
40         //创建list集合
41         List<Map<String,Object>> listItems = new ArrayList<Map<String,Object>>();
42         //通过for循环将图片id和列表项文字放到Map中,并添加到list集合中
43         for(int i=0;i<imageId.length;i++)
44         {
45             //实例化Map对象
46             Map<String,Object> map = new HashMap<String,Object>();
47             map.put("image", imageId[i]);
48             map.put("title", title[i]);
49             //将map对象添加到List集合
50             listItems.add(map);
51         }
52         SimpleAdapter adapter = new SimpleAdapter(this, listItems, R.layout.items, new String[]{"title","image"},new int[]{R.id.title,R.id.image});
53         listview.setAdapter(adapter);
54     }
55
56 }

二、两个 layout

(1)items.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="horizontal" >
 6
 7     <ImageView
 8         android:id="@+id/image"
 9         android:paddingRight="10px"
10         android:paddingTop="20px"       //图片距离头部20px
11         android:paddingBottom="20px"    //图片距离底部20px
12         android:adjustViewBounds="true" //
在ImageView 调整边界时保持图片的纵横比例,需要与maxWidth、MaxHeight一起使用,否则单独使用没有效果。
13         android:maxWidth="72px"
14         android:maxHeight="72px"
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         />
18
19     <TextView
20         android:layout_width="wrap_content"
21         android:layout_height="wrap_content"
22         android:padding="10px"
23         android:layout_gravity="center"
24         android:id="@+id/title"
25         />
26 </LinearLayout>

用于布局列表项内容,采用水平线性布局,并在该布局管理器中添加一个ImageView组件和一个TextView组件,分别用于显示列表项中的图标和文字
(2)mainactivity.xml

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical" >
 6
 7     <ListView
 8         android:id="@+id/listView1"
 9         android:layout_width="match_parent"
10         android:layout_height="wrap_content" >
11     </ListView>
12
13 </LinearLayout>

三、AndroidManifest.xml

 1 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 2     package="com.example.test"
 3     android:versionCode="1"
 4     android:versionName="1.0" >
 5
 6     <uses-sdk
 7         android:minSdkVersion="8"
 8         android:targetSdkVersion="18" />
 9
10     <application
11         android:allowBackup="true"
12         android:icon="@drawable/ic_launcher"
13         android:label="@string/app_name"
14         android:theme="@style/AppTheme" >
15         <activity android:name="xqx.MainActivity">
16 -         <intent-filter>
17                   <action android:name="android.intent.action.MAIN" />
18                   <category android:name="android.intent.category.LAUNCHER" />
19           </intent-filter>
20           </activity>
21     </application>
22
23 </manifest>

效果图

时间: 2024-11-05 13:29:05

安卓开发之带图标的列表的相关文章

Android实现“是否退出”对话框和“带图标的列表”对话框

今天我们学习的内容是实现两种对话框(Dialog),第一种是询问是否退出对话框,另外一种是带图标的列表对话框,程序的执行效果是,我们点击button1的时候,弹出第一种对话框,我们点击button2的时候,弹出另外一种对话框. (1)  首先是布局方面,有三个xml文件,一个是Activity的布局文件,一个是Dialog的布局文件,一个是ListView的布局文件,内容分别例如以下: activity_main.xml <LinearLayout xmlns:android="http:

安卓开发----TextView控件属性列表(转)

文章原地址: http://wwzcraig.blog.163.com/blog/static/64622969201373184343118/ android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正.此处无效果,在显示输入法并输入的时候起作用.android:bufferType指定getText()

关于安卓开发实现可展开的列表组件

三个布局文件 main.xml      childs.xml      groups.xml 一个java文件  List_lianxi.java main.xml文件代码 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:la

程序员带你学习安卓开发,十天快速入门-基础知识(四)

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 本系列课程是.Net程序员学习安卓开发系列课程. 下面是前三次课程列表: 程序员带你学习安卓开发,十天快速入门-安卓学习必要性 程序员带你学习安卓开发,十天快速入门-开发工具配置学习 程序员带你学习安卓开发,十天快速入-对比C#学习java语法 为了大家系统有效的快速入门安卓开发,推荐

程序员带你学习安卓开发-XML文档的创建与解析

这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:程序员带你学习安卓开发系列-Android文件存储 因知识连贯性推荐关注头条号:做全栈攻城狮.从头开始学习. 链接:http://www.toutiao.com/m5443584213/ 项目概述: 学生信息管理系统.添加学生信息,到XML文件库. 显示所有添加的学生列表. 界面: 前台界面代码: XML生成: 生成的xml: XML解析: 更多教程,欢迎大家关注今日头条-做全栈攻城狮.一起交流探

程序员带你学习安卓开发系列-Android文件存储

这是程序员带你学习安卓开发系列教程.本文章致力于面向对象程序员可以快速学习开发安卓技术. 上篇文章:.Net程序员快速学习安卓开发-布局和点击事件的写法 主要讲解了布局和点击事件的写法. 上篇文章补充: 控件单位介绍: px 像素 dip或者dp 设备独立像素 sp 比例像素 控件的高度宽度一般用dip或者dp.字体用sp. Android 存储数据项目: 描述:实现QQ登录效果.如图: 输入帐号密码,并勾选记住帐号 ,点击登录时,保存帐号信息.下次登陆可以直接显示上次保存的QQ帐号. 前台界面

程序员带你学习安卓开发,十天快速入门-开发工具配置学习

上次课程:.Net程序员学习Android开发-第一课 讲到,.Net程序员学习Android开发的必要性以及对安卓大环境的相关介绍. 其中看到有网友评论,称,搞C#的去搞安卓,还怪自己的移动平台不给力.有的人说,学习.Net就学.Net学习什么安卓.这时的我首先想到了,固步自封的大清朝.当然并不是对这部分人排斥.只能说是想法不一致,认知略有不同,也没有错与对,我只是想把我自己的想法表达出来,期望与您产生共鸣.的确迄今为止,我仍然认为C#是当今我见过的最好的语言.设计规范语法总使我赶到兴奋其优美

程序员带你学习安卓开发,十天快速入-对比C#学习java语法

关注今日头条-做全栈攻城狮,学代码也要读书,爱全栈,更爱生活.提供程序员技术及生活指导干货. 如果你真想学习,请评论学过的每篇文章,记录学习的痕迹. 请把所有教程文章中所提及的代码,最少敲写三遍,达到熟悉的效果. 上次课程:.程序员带你学习安卓开发,十天快速入门-开发工具配置学习讲的是java环境的配置以及as安装工具的安装. 其中有网友@鹅鹅鹅_说道,其实jdk的环境变量配置,不用配置的那么麻烦了.当前的jdk版本只要设置一个变量javahome就可以了,其他的可以不需要配置.在这里提一下.

替换谷歌自带的安卓开发虚拟机?何不试试下面的虚拟机

 谷歌自带的虚拟机的启动速度让人蛋疼不已,下面总结列举了3个虚拟机,方便各位安卓开发者在没有安卓手机情况下,也能尽享安卓开发. 1.bluestacks 使用方法:http://jingyan.baidu.com/article/425e69e69e0cf8be15fc1616.html 官网:http://www.bluestacks.net.cn/Download/ 优缺点: 总的来说还是非常不错了,安装apk应用也非常方便,只要右键apk,安装到bluestack就可以了.还能玩手机上