Android_ListView简单例子
ListView是Android软件开发中非常重要组件之一,基本上是个软件基本都会使用ListView ,今天我通过一个demo来教大家怎么样使用ListView组件
activity_main.xml
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:paddingBottom="@dimen/activity_vertical_margin"
- android:paddingLeft="@dimen/activity_horizontal_margin"
- android:paddingRight="@dimen/activity_horizontal_margin"
- android:paddingTop="@dimen/activity_vertical_margin"
- tools:context="com.example.asynctask.MainActivity" >
- <TextView
- android:id="@+id/textView1"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello_world" />
- <Button
- android:id="@+id/Button"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_below="@+id/textView1"
- android:text="按钮"
- />
- <!-- ListView 由item.xml里的TextView给值 。-->
- <ListView
- android:id="@+id/listView1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@+id/Button"
- />
- </RelativeLayout>
效果图:
上下两个xml文件要结合使用。 item.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal" >
- <!-- 下面两个是用来给 activity_main.xml里的ListView赋值,-->
- <TextView
- android:id="@+id/Textviewname"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="1"
- />
- <TextView
- android:id="@+id/Textviewage"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:text="2"
- />
- </LinearLayout>
效果图:
java代码:
MainActivity.java
- package com.example.asynctask;
- import java.util.ArrayList;
- import java.util.List;
- import android.app.Activity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.LayoutInflater;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.ViewGroup;
- import android.view.View.OnClickListener;
- import android.widget.BaseAdapter;
- import android.widget.Button;
- import android.widget.ListView;
- import android.widget.TextView;
- public class MainActivity extends Activity {
- private TextView tv1;//item.xml里的TextView:Textviewname
- private TextView tv2;//item.xml里的TextView:Textviewage
- private Button bt;//activity_main.xml里的Button
- private ListView lv;//activity_main.xml里的ListView
- private BaseAdapter adapter;//要实现的类
- private List<User> userList = new ArrayList<User>();//实体类
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- bt = (Button) findViewById(R.id.Button);
- lv = (ListView) findViewById(R.id.listView1);
- //模拟数据库
- for (int i = 0; i < 5; i++) {
- User ue = new User();//给实体类赋值
- ue.setName("小米"+i);
- ue.setAge("18");
- userList.add(ue);
- }
- /* bt.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- }
- });*/
- adapter = new BaseAdapter() {
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return userList.size();//数目
- }
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- LayoutInflater inflater = MainActivity.this.getLayoutInflater();
- View view;
- if (convertView==null) {
- //因为getView()返回的对象,adapter会自动赋给ListView
- view = inflater.inflate(R.layout.item, null);
- }else{
- view=convertView;
- Log.i("info","有缓存,不需要重新生成"+position);
- }
- tv1 = (TextView) view.findViewById(R.id.Textviewname);//找到Textviewname
- tv1.setText(userList.get(position).getName());//设置参数
- tv2 = (TextView) view.findViewById(R.id.Textviewage);//找到Textviewage
- tv2.setText(userList.get(position).getAge());//设置参数
- return view;
- }
- @Override
- public long getItemId(int position) {//取在列表中与指定索引对应的行id
- return 0;
- }
- @Override
- public Object getItem(int position) {//获取数据集中与指定索引对应的数据项
- return null;
- }
- };
- lv.setAdapter(adapter);
- //获取当前ListView点击的行数,并且得到该数据
- }
- }
- //获取当前ListView点击的行数,并且得到该数据
- lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
- tv1 = (TextView) view.findViewById(R.id.Textviewname);//找到Textviewname
- str = tv1.getText().toString();//得到数据
- Toast.makeText(MainActivity.this, "" + str, Toast.LENGTH_SHORT).show();//显示数据
- Intent it = new Intent(MainActivity.this, list0.class); //
- Bundle b = new Bundle();
- b.putString("we",str); //string
- // b.putSerializable("dd",str);
- // it.putExtra("str_1",str);
- it.putExtras(b);
- startActivity(it);
- }
- });
实体类:
- package com.example.asynctask;
- public class User {
- private String name;
- private String age;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getAge() {
- return age;
- }
- public void setAge(String age) {
- this.age = age;
- }
- @Override
- public String toString() {
- return "User [name=" + name + ", age=" + age + "]";
- }
- }
最后结果:
Android_ListView简单例子的更多相关文章
- Hibernate4.2.4入门(一)——环境搭建和简单例子
一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...
- AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答
一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...
- spring mvc(注解)上传文件的简单例子
spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...
- ko 简单例子
Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...
- mysql定时任务简单例子
mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9 如果要每30秒执行以下语句: [sql] update userinfo set endtime = now() WHE ...
- java socket编程开发简单例子 与 nio非阻塞通道
基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...
- 一个简单例子:贫血模型or领域模型
转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...
- [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select
以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...
- jsonp的简单例子
jsonp的简单例子 index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...
随机推荐
- Python的MySQLdb模块安装
MySQL-python-1.2.1.tar.gz 下载地址:https://pan.baidu.com/s/1kVfH84v 然后解压,打开README(这个其实没有什么鸟用) 里面有安装过程: ...
- cinnamon桌面安装在其他目录下
cinnamon桌面还不错,不过默认只能安装在/usr目录下 有很多脚本中写死了是/usr目录 编译时如下模块需要打补丁: 1.cinnamon中,需要执行 sed -i 's|usr/share|u ...
- Yii2.0 用户登录详解(上)
一.准备 在开始编写代码之前,我们需要思考一下:用户登陆模块,实现的是什么功能?很明显,是登陆功能,那么,登陆需要用户名和密码,我们在数据库的一张表中就应该准备好用户名和密码的字段,再思考一下,如果要 ...
- ab 轻量的压测工具
阅读:http://www.cnblogs.com/luminji/archive/2011/09/02/2163525.html
- 2015.4.20 Canvas Jquery 移动端 JavaScript
1.分享效果:弹窗Canvas渲染大图. 2.进度条中表现进度百分比的数值d%,根据进度的增长“字体颜色”为了表示清晰也随着变化 解决方法:参考Demo. 3.输入框保持查询参数,结果列表局部 ...
- TypePerf.exe使用命令查找计数器
TypePerf.exe是一个命令行工具,包括把Windows操作系统的性能计数器数据输出到命令窗口或写入到支持该功能的日志文件格式中. 通过以下两个参数获取计数器信息: -q [object] 列出 ...
- GDI+ 笔记
1.GDI+模板 #include<windows.h> #include<GdiPlus.h> #include <time.h> #include <ma ...
- Chrome 用户数据配置文件夹保存路径在哪?(Mac OS X/Windows/Linux)
在重装系统之前都想要对 Chrome 中的数据进行备份,以能够在重装系统后恢复这些数据.但是除了一些玩 Chrome 很长时间的用户,鲜有人知道 Chrome 的用户数据到底保存在什么地方.如果你也有 ...
- 如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?
如果要在某个数组中删除一个元素,可以直接用的unset,但是数组的索引不会重排: <?php $arr = array('a','b','c','d'); unset($arr[1]); pri ...
- Windows 7安装解压版MySQL 5.6(不包含配置文件优化)
到官网下载MySQL5.6 下载地址:http://dev.mysql.com/downloads/mysql/5.6.html, 提供了 .exe版本 和 .zip解压版,因为我的操作系统是64位的 ...