Android 基本控件的使用七(ListView+BaseAdapter)(demo)
来源:互联网 发布:源码包安装php 编辑:程序博客网 时间:2024/05/24 23:15
项目描述:利用 ListView+BaseAdapter 来实现 如下图的显示
开发步骤:
1.在activity_main.xml 中添加 ListView 控件
2.在 contact_item.xml 添加布局(每一项的显示布局)
3.创建一个 Contact 实体类(属性:name number)
4.创建一个ContactAdapter 继承 BaseAdapter
4.1 声明数据源
4.2 声明模板
4.3 创建一个构造方法
4.4 重写两个方法 getCount() 和 getView();;
别的方法放后面暂时不写
5. 在MainActivity.java 中
5.1 声明控件
ListView
数据源
adapter
5.2 初始化控件
listView
5.3 创建数据
5.4 创建 adapter
5.5 为控件设置 adapter
activity_main.xml
<RelativeLayoutxmlns: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=".MainActivity">
<ListView
android:id="@+id/lv_contacts"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
contact_item.xml
<?xmlversion="1.0"encoding="utf-8"?>
<RelativeLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<TextView
android:id="@+id/tv_contact_item_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:text="yyl"
android:textColor="#000000"
android:textSize="16sp"/>
<TextView
android:id="@+id/tv_contact_item_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tv_contact_item_name"
android:text="152********"
android:textColor="#555555"
android:textSize="14sp"/>
</RelativeLayout>
Contact.java
package com.example.android_listview_baseadapter;
public class Contact {
public String name;
public String number;
public Contact(String name, String number) {
super();
this.name = name;
this.number = number;
}
}
ContactAdapter.java
package com.example.android_listview_baseadapter;
import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
public class ContactAdapter extends BaseAdapter{
// 数据源
private List<Contact> data;
// 模板
private LayoutInflater inflater;
// 需要传一个上下文对象
private Context context;
public ContactAdapter(List<Contact> data, Context context) {
super();
this.data = data;
inflater = LayoutInflater.from(context);
}
// 表示数据源的长度,即有多少条数据
@Override
public int getCount() {
return data.size();
}
//
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// 得到 Position 所对应的位置
Contact contact = data.get(position);
// 加载模板
View view = inflater.inflate(R.layout.contact_item, null);
// 获取模板中的控件对象
TextView tvName = (TextView) view.findViewById(R.id.tv_contact_item_name);
TextView tvNumber = (TextView) view.findViewById(R.id.tv_contact_item_number);
// 将数据添加到控件中
tvName.setText(contact.name);
tvNumber.setText(contact.number);
return view;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
}
MainActivity.java
package com.example.android_listview_baseadapter;
import java.util.ArrayList;
import java.util.List;
import android.app.Activity;
import android.os.Bundle;
import android.widget.BaseAdapter;
import android.widget.ListView;
public class MainActivity extends Activity {
// 声明控件
private ListView listView;
// 数据源
private List<Contact> data;
// 适配器
private ContactAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
listView = (ListView) findViewById(R.id.lv_contacts);
// 创建数据
data = new ArrayList<Contact>();
data.add(new Contact("sophia0", "111111111110"));
data.add(new Contact("sophia1", "111111111111"));
data.add(new Contact("sophia2", "111111111112"));
data.add(new Contact("sophia3", "111111111113"));
data.add(new Contact("sophia4", "111111111114"));
data.add(new Contact("sophia5", "111111111115"));
data.add(new Contact("sophia6", "111111111116"));
data.add(new Contact("sophia7", "111111111117"));
// 创建 adapter
adapter = new ContactAdapter(data, this);
// 配置适配器
listView.setAdapter(adapter);
}
}
- Android 基本控件的使用七(ListView+BaseAdapter)(demo)
- Android 入门ListView 的基本使用,BaseAdapter的编写
- Android 基本控件的使用五(ListView 与 ArrayAdapter)
- ListView之BaseAdapter的基本使用
- Android 带button的ListView (BaseAdapter)
- listview的简单使用(Baseadapter)
- Android基本控件ListView的使用总结
- ListView应用Demo使用自定义的适配器继承BaseAdapter
- Android 的ListView及其BaseAdapter的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android ListView 和 BaseAdapter 的使用
- Android杂谈--ListView之BaseAdapter的使用
- Android BaseAdapter(Spinner,ListView,GridView)的使用
- Android ListView之BaseAdapter的使用
- 【Android】使用BaseAdapter实现复杂的ListView
- Android杂谈--ListView之BaseAdapter的使用
- Android杂谈--ListView之BaseAdapter的使用
- JQuery 遍历对象(DOM,数组,JSON)方法
- Hadoop DataNode的读和写流程 选择datanode方法 机架感知
- 单链队列基本操作
- Android下载图片
- 递推之摆动数列
- Android 基本控件的使用七(ListView+BaseAdapter)(demo)
- RaspberryPi2 安装系统到硬盘
- HDFS源码分析(5):datanode数据块的读与写DataXceiver
- redis 对hash设置expires
- (LeetCode 304) Range Sum Query 2D - Immutable
- C++作业3
- HDFS写操作(二) DataNode DataXceiverServer DataXceiver
- jquery实现轮询
- 为什么要配置Java环境变量以及Java环境变量的配置