ListView控件绑定数据
2015-09-13 23:59
489 查看
1.创建ListView程序对应的布局文件(activity_main.xml)
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.helloworldd.MainActivity" > <ListView android:id = "@+id/lv"; android:layout_width="match_parent"; android:layout_height = "wrap_content"/> </LinearLayout>
2.创建Item布局
创建好ListView界面之后接下来需要创建ListView条目,在res/layout目录下创建一个list_item.xml文件,指定Item布局<?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="match_parent" > <TextView android:id="@+id/tv_list" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:paddingLeft="10dp" android:layout_marginLeft="10dp" android:textSize="18sp" android:hint="item布局" /> </RelativeLayout>
3.编写界面交互代码(MainActivity)
public class MainActivity extends ActionBarActivity { private ListView listView; //存放回帖信息,data获取的数据我就不写了,大家可以把data替换成 //其他 List<String> data = new ArrayList<String>(); protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //绑定控件 listView = (ListView) findViewById(R.id.listView1); //创建一个Adapter的实例 final MyBaseAdapter mAdapter = new MyBaseAdapter(); //设置Adapter listView.setAdapter(mAdapter); } /* * 创建一个类继承BaseAdapter */ class MyBaseAdapter extends BaseAdapter{ /** * 得到Item的总数 */ @Override public int getCount() { // TODO Auto-generated method stub //返回ListView Item条目的总数 return data.size(); } /** * 得到Item代表的对象 */ @Override public Object getItem(int position) { // TODO Auto-generated method stub // 返回ListView Item条目代表的对象 return data.get(position); } /** * 得到Item的id */ @Override public long getItemId(int position) { // TODO Auto-generated method stub //返回ListView Item的id return position; } /** * 得到Item的View视图 */ @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub //将List_item.xml文件找出来并转换成View对象 View view = View.inflate(MainActivity.this, R.layout.list_item, null); //找到list_item.xml中创建的TextView TextView textView = (TextView) view.findViewById(R.id.tv_list); textView.setText(data.get(position)); return view; } }
上述代码的MyBaseAdapter类,是用来适配数据到ListView的,继承自BaseAdapter并实现了getCount(),getItem(),getItemId(),getView()这4个方法。其中,getView()方法中调用了View.inflate()方法,这个方法的作用是将list_item布局找出来。只有在找出了布局之后,才能调用findViewById()的方法去找到控件。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories