安卓listview使用的一种方法
来源:互联网 发布:多功能圣经软件下载 编辑:程序博客网 时间:2024/05/18 00:35
先上个效果图
温度报警设置是用listview容器装载。包含两个textview和两个button。
首先,声明两个必要组建,ListView和ArrayList是两个必要的容器
private ListView listView;private ArrayList<String> data = new ArrayList<>();
listview的初始化处理
listView = (ListView)findViewById(R.id.alert_setting_list);generateListContent();listView.setAdapter(new MyListAdapter(this,R.layout.alert_setting_item,data));
generateListContent的实现
private void generateListContent(){ for (int i = 0; i < 3; i++) { data.add("This is no " + i); }}
MyListAdapter的实现
private class MyListAdapter extends ArrayAdapter<String> { private int layout; public MyListAdapter(Context context, int resource, List<String> objects) { super(context, resource, objects); layout = resource; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder mainViewHolder = null; if (convertView == null){ LayoutInflater layoutInflater = LayoutInflater.from(getContext()); convertView = layoutInflater.inflate(layout, parent, false); final ViewHolder viewHolder = new ViewHolder(); viewHolder.textTitle = (TextView)convertView.findViewById(R.id.setting_title); viewHolder.addButton = (Button)convertView.findViewById(R.id.add_button); viewHolder.textContent = (TextView)convertView.findViewById(R.id.setting_content); viewHolder.minusButton = (Button)convertView.findViewById(R.id.minus_button); switch (position){ case 0: viewHolder.textTitle.setText("高温报警线"); viewHolder.textContent.setText("38.0"); viewHolder.addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); viewHolder.minusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); break; case 1: viewHolder.textTitle.setText("低温报警线"); viewHolder.textContent.setText("36.0"); viewHolder.addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); viewHolder.minusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); break; case 2: viewHolder.textTitle.setText("间隔时间"); viewHolder.textContent.setText(String.valueOf(10)); viewHolder.addButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); viewHolder.minusButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //在这里添加对按钮点击的响应事件 } }); break; default: break; } convertView.setTag(viewHolder); }else{ mainViewHolder = (ViewHolder)convertView.getTag(); } return convertView; } } public class ViewHolder{ TextView textTitle; Button addButton; TextView textContent; Button minusButton; }
Layout文件
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout 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:orientation="vertical" 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.will.listviewdemp.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="温度报警设置"/> <ListView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/alert_setting_list" /></LinearLayout>
alert_setting_item.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/setting_title" android:layout_centerVertical="true" android:layout_alignParentStart="true" /> <Button android:layout_width="50dp" android:layout_height="wrap_content" android:text="+" android:textSize="30dp" android:id="@+id/add_button" android:layout_gravity="center_horizontal" android:layout_alignParentTop="true" android:layout_toStartOf="@+id/setting_content" /> <TextView android:layout_width="30dp" android:layout_height="wrap_content" android:text="38" android:layout_centerVertical="true" android:id="@+id/setting_content" android:layout_below="@+id/setting_title" android:layout_toStartOf="@+id/minus_button" /> <Button android:layout_width="50dp" android:layout_height="wrap_content" android:text="-" android:textSize="30dp" android:id="@+id/minus_button" android:layout_gravity="right" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" /></RelativeLayout>
这样就能基本完成一个listview的界面,当然listview的实现方法不止这一种,仅提供一种参考,欢迎讨论。代码资源:http://download.csdn.net/detail/will4906/9657851
参考链接:https://www.youtube.com/watch?v=ZEEYYvVwJGY
0 0
- 安卓listview使用的一种方法
- 安卓ListView的使用
- 安卓ListView的使用
- 安卓开发-ListView的使用
- 安卓学习:(7)安卓ListView的使用
- 安卓适应各种分辨率的一种方法:比例法
- 安卓APK去广告的一种方法
- 屏幕旋转之后,ListView表格表头位置错乱 与onConfigurationChanged方法的使用【安卓布局】
- 安卓 ListView错位的一种情况 ......ViewHolder 每次都应该为所有控件赋值
- 安卓ListView中嵌套ListView导致外层ListView的ItemOnclick方法无法响应的解决办法
- 安卓ListView使用例子
- 安卓ListView使用技巧
- 安卓-ListView基本使用
- 安卓--第三天--Listview的实现方法详细分析
- 安卓ListView的Item使用不同的背景颜色
- 安卓基础:ListView的简单使用和优化
- 安卓开发(4):ListView的使用,arrayAdapter,simpleAdapter
- 安卓Activity全屏的一种办法
- Android阶段性学习总结
- 图片剪裁cropper插件结合网站示例 支持图片旋转,裁剪,加水印功能 类似58同城效果
- Java 集合框架
- Android使用系统自动SDK V7库实现切换主题
- 互联网广告系统综述四定向
- 安卓listview使用的一种方法
- 单独引用bootstrap源码的carousel.js无法实现轮播效果的解决
- 单片机==ds1302_时间日期周几(30)
- WDF驱动模型
- mysql INNODB_TRX 事务表
- 字符串操作函数
- Python3学习二之基本数据类型
- java 引用
- vector效率低怎么破?