Android ListView与适配器
来源:互联网 发布:程序员可以兼职吗 编辑:程序博客网 时间:2024/06/05 17:57
Android ListView与适配器
效果图
ListView显示列表数据
1.以垂直方式展示一组数据项
2.将数据展示在一个可滚动的列表视图中
3.每一子项数据的格式都相同
2.将数据展示在一个可滚动的列表视图中
3.每一子项数据的格式都相同
ListView的使用
ListView显示数据三元素
ListView使用步骤
1.定义listView组件,创建列表显示界面
2.构造适配器,关联数据源
3.为ListView设置适配器
1.定义listView组件,创建列表显示界面
2.构造适配器,关联数据源
3.为ListView设置适配器
什么是适配器?
Adapter
1.处理数据并将数据绑定到界面
2.界面与数据之间的桥梁
3.提供数据项的访问及更新
1.处理数据并将数据绑定到界面
2.界面与数据之间的桥梁
3.提供数据项的访问及更新
根据列表的适配器类型分为三种,
1.ArrayAdapter
2.SimpleAdapter
3.SimpleCursorAdapter
ArrayAdapter最为简单,只能展示一行字。
1.ArrayAdapter
2.SimpleAdapter
3.SimpleCursorAdapter
ArrayAdapter最为简单,只能展示一行字。
SimpleAdapter有最好的扩充性,可以自定义出各种效果。
SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来。
代码演示
1.首先是布局文件,这里需要两个布局文件,一个是放置列表控件的Activity对应的布局文件 activity_main.xml,另一个是ListView中每一行信息显示所对应的布局listview_main.xml
<?xml version="1.0" encoding="utf-8"?><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" tools:context="com.example.listview.MainActivity"> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/listView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true"/></RelativeLayout>
新建一个布局文件listview_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ImageView android:layout_width="80dp" android:layout_height="80dp" android:id="@+id/imageView" android:src="@mipmap/ic_launcher"/> <TextView android:layout_width="100dp" android:layout_height="40dp" android:text="New Text" android:id="@+id/textView1" android:layout_alignParentTop="true" android:layout_toRightOf="@+id/imageView" android:layout_toEndOf="@+id/imageView"/> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView2" android:layout_below="@+id/textView1" android:layout_toRightOf="@+id/imageView" android:layout_toEndOf="@+id/imageView"/></RelativeLayout>
2.在新建一个Main2Activity用于跳转显示,并添加布局文件
package com.example.listview;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.TextView;public class Main2Activity extends AppCompatActivity { private TextView tv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); //获取上个页面的intent内容 Intent intent=getIntent(); //根据不同的建名,获取相对应的值 int name=intent.getIntExtra("newname",0); //通过ID寻找textView的位置 tv= (TextView) findViewById(R.id.textView3); //调用name tv.setText(String.valueOf(name)); }}
<?xml version="1.0" encoding="utf-8"?><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" tools:context="com.example.listview.Main2Activity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView3" android:layout_centerVertical="true" android:layout_centerHorizontal="true"/></RelativeLayout>
3.然后就设置MainActivity中的代码了:基本思想就是先将数据添加到ArrayList中
实例化控件
调用initView方法
通过ID找到listView的位置
实例化list集合对象,不能直接实例化所以用子类ArrayList实例化
利用for循环循环显示listview列表
创建一个适配器
把适配器放在列表上去
给listView添加短按监视器
给listView添加长按监视器
跳转页面
将对应的值传入跳转页面,newname为list的一个表示
开始跳转
false会出现短按监视器和长按监视器
true会出现长按监视器
调用initView方法
通过ID找到listView的位置
实例化list集合对象,不能直接实例化所以用子类ArrayList实例化
利用for循环循环显示listview列表
创建一个适配器
把适配器放在列表上去
给listView添加短按监视器
给listView添加长按监视器
跳转页面
将对应的值传入跳转页面,newname为list的一个表示
开始跳转
false会出现短按监视器和长按监视器
true会出现长按监视器
package com.example.listview;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.AdapterView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { //实例化控件 private ListView listView; private List<Integer> list; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //调用initView方法 initView(); } private void initView(){ //通过ID找到listView的位置 listView= (ListView) findViewById(R.id.listView); //实例化list集合对象,不能直接实例化所以用子类ArrayList实例化 list=new ArrayList(); //利用for循环循环显示listview列表 for(int x=0; x<100; x++){ list.add(x); } //创建一个适配器 ArrayAdapter adapter=new ArrayAdapter(this,R.layout.listview_main,R.id.textView1,list); //把适配器放在列表上去 listView.setAdapter(adapter); //给listView添加短按监视器 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(MainActivity.this, "点击了第"+list.get(position)+"个条目", Toast.LENGTH_SHORT).show(); } }); //给listView添加长按监视器 listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { //跳转页面 Intent intent=new Intent(MainActivity.this,Main2Activity.class); //将对应的值传入跳转页面,newname为list的一个表示 intent.putExtra("newname",list.get(position).toString()); //开始跳转 startActivity(intent); //false会出现短按监视器和长按监视器 //true会出现长按监视器 return true; } }); }}
1 0
- Android ListView与适配器
- Android ListView与适配器
- 【Android】ListView与SimpleAdapter适配器的使用
- Android学习之ListView与适配器
- Android——ListView与适配器
- ListView与适配器
- android ListView&&适配器使用
- android listView 适配器demo
- 【android】ListView适配器
- Android--ListView--万能适配器
- Android Listview通用适配器
- Android listview适配器
- Android的listview适配器
- Android控件之列表视图ListView与适配器用法
- Android listview与adapter用法(包括自定义需要的适配器)
- Android控件之列表视图ListView与适配器用法
- Android控件之列表视图ListView与适配器用法
- Android UI设计:ListView 控件与 Adapter 适配器
- qsort与bsearch
- Python学习——urlparse
- 计算字符串距离(编辑距离)
- linux c编程 获取本机CPU利用率 内存使用情况 硬盘使用情况
- sed命令的用法
- Android ListView与适配器
- 联合权值 noip2014 dfs
- YMS的syslog配置
- 判断一个数是否为素数
- 矩阵快速幂
- python的zip函数
- 蓝桥杯最大子阵
- 使用结构数组的函数
- Android 开发调用百度地图api开发----解决地图显示不出来