什么是 ListView ?它有什么用?
如这个页面,多个新闻信息:,一个个在xml写是不可能的!
所以,我们需要用ListView循环写!
一个LinearLayout 布局中,
就一个图片,一个标题,一个时间,一个评论数量!是不是很少啊?
一、普通的ListView 例子
为了方便大家理解,我就写个超级简单的例子吧:
代码的组成:一个方法,2个xml页面,图片若张(自备)
1、EsotericActivity.java
(我这里的xml 很多重复,所以我用了循环,但是有时候还是不能偷懒)
package com.open_open.android_plantest;
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class EsotericActivity extends Activity {
private ListView listOne;
//定义一个集合存放所有学生信息
private SimpleAdapter adapter;
private List<Map<String,Object>> data=null;
private String planArray[]={"训练须知","训练须知2","训练须知3","训练须知4","训练须知5","训练须知6"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_esoteric);
listOne = (ListView) findViewById(R.id.listOne);
//构建适配器【首先定义好自己的布局】
getData(); //获取数据
String[] from = {"Photo1", "Title1", "Title2", "Photo2"};
int[] to = {R.id.photo1, R.id.title1, R.id.title2, R.id.photo2};
adapter = new SimpleAdapter(this, data, R.layout.activity_plan, from, to);
listOne.setAdapter(adapter);
}
private void getData() {
data = new ArrayList<Map<String, Object>>();
//构建一项内容
Map<String, Object> item = new HashMap<String, Object>();
for(int i=0;i<planArray.length;i++){
item = new HashMap<String, Object>();
item.put("Photo1", R.drawable.plan1);
item.put("Title1", planArray[i]);
item.put("Title2", "");
item.put("Photo2", R.drawable.go_in);
data.add(item);
}
}
}
正常的情况:getDate() 的写法
private void getData() { data = new ArrayList<Map<String,Object>>(); //构建一项内容 Map<String,Object> item=new HashMap<String, Object>(); item=new HashMap<String