您的位置:首页 > 编程语言

View(视图)——ListView之BaseAdapter和SimpleCursorAdapter以及网格视图代码视图

2016-05-21 00:06 537 查看
一.BaseAdapter

1.数据源 List<Object>

一般是放实体类、POJO类,一般只包含私有属性和属性的getter和setter方法。

2.layout:可以用布局,包含多个视图。

3.抽象类:必须要继承并实现4个抽象方法

1-int getCount() 返回数据源的记录数

2-Object getItem(int position) 返回索引对应的数据对象

3-long getItemId(int position) 返回索引对应的数据对象的ID

4-View getView(int position, View convertView, ViewGroup parent) 实现数据与视图的适配,返回装载了数据的视图,convertView 表示可复用的视图。

二.SimpleCursorAdapter

数据源:数据库的查询结果集Cursor(游标)。

三.GridView网格视图:带格子的ListView

package com.example.wang.testapp2;

import android.app.ActionBar;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;

import java.util.ArrayList;
import java.util.List;

public class TestActivity10 extends AppCompatActivity {

GridView gv_1;

List<Integer> liv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test10);

GridView gv_1=(GridView)findViewById(R.id.gv_1);

//1 数据 图片的id
liv =new ArrayList<>();
liv.add(R.drawable.f1);
liv.add(R.drawable.f2);
liv.add(R.drawable.f3);
liv.add(R.drawable.f4);
liv.add(R.drawable.f5);
liv.add(R.drawable.f6);
liv.add(R.drawable.f7);
liv.add(R.drawable.f8);
liv.add(R.drawable.f9);
liv.add(R.drawable.f10);

gv_1.setAdapter(new ImageAdapter());

}

// 适配器

class  ImageAdapter extends BaseAdapter
{
@Override
public int getCount() {
return liv.size();
}

@Override
public Object getItem(int position) {
return liv.get(position);
}

@Override
public long getItemId(int position) {
return 0;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {

//1. 得到数据 图片的id
Integer ivid=liv.get(position);

//2.准备View
if (convertView==null)
{
convertView = new ImageView(TestActivity10.this);
}

//3.适配
// 转换
ImageView imageView=(ImageView)convertView;

imageView.setImageResource(ivid);

//            imageView.setMaxWidth(70);
//            imageView.setMaxHeight(70);

imageView.setLayoutParams(new GridView.LayoutParams(110,110));

return imageView;
}
}
}


.java

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: