使用ListView和自定义Adapter完成列表信息显示,界面如附件图所示
xml布局文件如下:
String的代码如下:
ListView1 名字 年龄 邮箱 地址
效果图如下:
将对象的属性进行封装,给每个属性设置setter方法
public class PersonInfo implements PersonInfo1 { private String title1; private String title2; private String title3; private String title4; public PersonInfo(String title1, String title2, String title3, String title4) { this.title1 = title1; this.title2 = title2; this.title3 = title3; this.title4 = title4; } 创建Adapter,将数据加载到ListView
adapter = new SimpleAdapter( getActivity(), getData(), R.layout.activity_main, new String[]{"title1", "title2", "title3", "title4"}, new int[]{R.id.title1, R.id.title2, R.id.title3, R.id.title4}); ListView listView = (ListView)view.findViewById(R.id.list); listView.setAdapter(adapter); 添加每个item的监听事件
@Override public void onItemClick(AdapterView adapterView, View view, int position, long id) { String data = (String) adapterView.getItemAtPosition(position); 通过Map接口添加数据
private List> getData(){ List > datas = new ArrayList<>(); // 给list增加一条数据 HashMap data = new HashMap<>(); // Map映射添加数据 data.put("title1", "蔡志坤"); data.put("title2", "25"); data.put("title3", "ffczk86@gmail.com"); data.put("title4", "厦门市"); // 将这个map放到list中 datas.add(data); data = new HashMap<>(); data.put("title1", "李杰华"); data.put("title2", "25"); data.put("title3", "aa@bb.com"); data.put("title4", "漳州市"); datas.add(data); data = new HashMap<>(); data.put("title1", "张亮"); data.put("title2", "25"); data.put("title3", "cc@gmail.com"); data.put("title4", "厦门市"); datas.add(data); data = new HashMap<>(); data.put("title1", "刘玄德"); data.put("title2", "25"); data.put("title3", "ffczk86@gmail.com"); data.put("title4", "福州市"); datas.add(data); return datas; } 重新创建一个java文件
public class CustomAdapter extends BaseAdapter { private List dates; private Context context; //通过构造方法获取所需对象:上下文和数据 public CustomAdapter(Context context, List dates) { this.dates = dates; this.context = context; } @Override public int getCount() { return dates.size();//一定返回list数据长度 } @Override public Object getItem(int i) { return dates.get(i); } @Override public long getItemId(int i) { return i; } //自定义adapter重写getView()方法 @Override public View getView(int i, View view, ViewGroup parent) { //获取view if (view == null) { view = LayoutInflater.from(context).inflate(R.layout.activity_main, null); }//获取view中的每个控件对象 TextView title1 = (TextView) view.findViewById(R.id.title1); TextView title2 = (TextView) view.findViewById(R.id.title2); TextView title3 = (TextView) view.findViewById(R.id.title3); TextView title4 = (TextView) view.findViewById(R.id.title4); //给每个view控件赋值 Classinfo classInfo = datas.get(i); title1.setText(classinfo.gettitle1()); title2.setText(classinfo.getTitle2()); title3.setText(classinfo.gettitle3()); title4.setText(classinfo.gettitle4()); return null; }